home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / OCEAuthDir.a < prev    next >
Text File  |  1996-05-01  |  200KB  |  4,935 lines

  1. ;
  2. ;    File:        OCEAuthDir.a
  3. ;
  4. ;    Contains:    Apple Open Collaboration Environment Authentication Interfaces.
  5. ;
  6. ;    Version:    Technology:    AOCE Toolbox 1.02
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__OCEAUTHDIR__') = 'UNDEFINED' THEN
  19. __OCEAUTHDIR__ SET 1
  20.  
  21.     IF &TYPE('__APPLETALK__') = 'UNDEFINED' THEN
  22.     include 'AppleTalk.a'
  23.     ENDIF
  24.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  25.     include 'Files.a'
  26.     ENDIF
  27.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  28.     include 'OSUtils.a'
  29.     ENDIF
  30.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  31.     include 'Types.a'
  32.     ENDIF
  33.     IF &TYPE('__OCE__') = 'UNDEFINED' THEN
  34.     include 'OCE.a'
  35.     ENDIF
  36.     IF FOR_SYSTEM7_ONLY THEN
  37. ; ***************************************************************************
  38.  
  39. kRC4KeySizeInBytes                EQU        8                    ; size of an RC4 key 
  40. kRefNumUnknown                    EQU        0
  41.  
  42. kEnumDistinguishedNameBit        EQU        0
  43. kEnumAliasBit                    EQU        1
  44. kEnumPseudonymBit                EQU        2
  45. kEnumDNodeBit                    EQU        3
  46. kEnumInvisibleBit                EQU        4
  47. ;  Values of DirEnumChoices 
  48.  
  49. kEnumDistinguishedNameMask        EQU        1
  50. kEnumAliasMask                    EQU        2
  51. kEnumPseudonymMask                EQU        4
  52. kEnumDNodeMask                    EQU        8
  53. kEnumInvisibleMask                EQU        16
  54. kEnumAllMask                    EQU        31
  55. ; typedef unsigned long                 DirEnumChoices
  56.  
  57. ;  Values of DirSortOption 
  58.  
  59. kSortByName                        EQU        0
  60. kSortByType                        EQU        1
  61. ;  Values of DirSortDirection 
  62.  
  63. kSortForwards                    EQU        0
  64. kSortBackwards                    EQU        1
  65. ;  Values of DirMatchWith 
  66.  
  67. kMatchAll                        EQU        0
  68. kExactMatch                        EQU        1
  69. kBeginsWith                        EQU        2
  70. kEndingWith                        EQU        3
  71. kContaining                        EQU        4
  72. ; typedef unsigned char                 DirMatchWith
  73.  
  74.  
  75. kCurrentOCESortVersion            EQU        1
  76. ;
  77. ;  Access controls are implemented on three levels:
  78. ; *      DNode, Record, and Attribute Type levels
  79. ; *  Some access control bits apply to the container itself, and some apply to its contents.
  80. ; *
  81. ; *  The Catalog Toolbox supports six functions.  These calls are:
  82. ; *  DSGetDNodeAccessControl : to get Access Controls at the DNode level
  83. ; *    DSGetRecordAccessControl  : to get Access Controls at the record level
  84. ; *  DSGetAttributeAccessControl : to get Access Privileges at the attribute type level
  85. ; * 
  86. ; *  The GetXXXAccessControl calls will return access control masks for various categories
  87. ; *  of users.  Please refer to the access control document for a description of the
  88. ; *  categories of users.  In general these are:
  89. ; *      ThisRecordOwner         - means the identity of the record itself
  90. ; *      Friends                  - means any one of the assigned friends for the record
  91. ; *      AuthenticatedInDNode     - means any valid user that is an authenticated entity
  92. ; *          in the DNode in which this record is located
  93. ; *      AuthenticatedInDirectory - means any valid authenticated catalog user
  94. ; *      Guest                      - means an unauthenticated user.
  95. ; *  Bit masks for various permitted access controls are defined below.
  96. ; *
  97. ; *  GetXXXAccessControl calls will return access control masks for various categories of
  98. ; *  users for this record. In addition they also return the level of access controls
  99. ; *  that the user (who is making the GetXXXAccessControl call) has for the DNode,
  100. ; *  record, or attribute type.
  101. ; *
  102. ; *  For records, the access control granted will be minimum of the DNode access
  103. ; *  control and record access control masks.  For example, to add an attribute type to a
  104. ; *  record, a user must have access control kCreateAttributeTypes at the record and
  105. ; *  DNode levels.  Similarly, at the attribute type level, access controls will be the
  106. ; *  minimum of the DNode, record, and attribute type access controls.
  107. ; *
  108. ; *  
  109. ;
  110. ;  access privileges bit numbers 
  111.  
  112. kSeeBit                            EQU        0
  113. kAddBit                            EQU        1
  114. kDeleteBit                        EQU        2
  115. kChangeBit                        EQU        3
  116. kRenameBit                        EQU        4
  117. kChangePrivsBit                    EQU        5
  118. kSeeFoldersBit                    EQU        6
  119. ;  Values of AccessMask 
  120.  
  121. kSeeMask                        EQU        1
  122. kAddMask                        EQU        2
  123. kDeleteMask                        EQU        4
  124. kChangeMask                        EQU        8
  125. kRenameMask                        EQU        16
  126. kChangePrivsMask                EQU        32
  127. kSeeFoldersMask                    EQU        64
  128.  
  129. kAllPrivs                        EQU        127
  130. kNoPrivs                        EQU        0
  131. ;
  132. ;
  133. ;kSupportsDNodeNumberBit:
  134. ;If this bit is set, a DNode can be referenced using DNodeNumbers. 
  135. ;RecordLocationInfo can be specified using DNodeNumber and PathName component can be nil. 
  136. ;If this bit is not set, a DNode can be referenced only by PathName to the DNode. In the 
  137. ;later case DNodeNumber component inside record location info must be set to zero.
  138. ;
  139. ;kSupportsRecordCreationIDBit:
  140. ;If this bit is set, a record can be referenced by specifying CreationID 
  141. ;in most catalog manager calls. If this bit is not set recordName and recordType are 
  142. ;required in the recordID specification for all catalog manager calls.
  143. ;
  144. ;kSupportsAttributeCreationIDBit:
  145. ;If this bit is set, an attribute value can be obtained by specifying it's 
  146. ;CreationID in Lookup call staring point and also can be used in operations 
  147. ;like DeleteAttributeValue and ChangeAttributeValue an Attribute can be 
  148. ;specified by AttributeType and CreationID.
  149. ;
  150. ;*************************************************************************
  151. ;Implicit assumption with creationID's and dNodeNumbers are, when supported
  152. ;they are persistent and will preserved across boots and life of the system.
  153. ;*************************************************************************
  154. ;
  155. ;Following three bits are for determining the sort order in enumeration.
  156. ;kSupportsMatchAllBit:
  157. ;If this bit is set, enumeration of all the records is supported
  158. ;
  159. ;kSupportsBeginsWithBit:
  160. ;If this bit is set, enumeration of records matching prefix (e.g. Begin with abc)
  161. ;is supported
  162. ;
  163. ;kSupportsExactMatchBit:
  164. ;If this bit is set, existence of a record matching exact matchNameString and recordType
  165. ;is supported.
  166. ;
  167. ;kSupportsEndsWithBit:
  168. ;If this bit is set, enumeration of records matching suffix (e.g. end with abc)
  169. ;is supported.
  170. ;
  171. ;kSupportsContainsBit:
  172. ;If this bit is set, enumeration of records containing a matchNameString (e.g. containing abc)
  173. ;is supported
  174. ;
  175. ;
  176. ;Implicit assumption in all these is, a record type can be specified either as one of the above or
  177. ;a type list(more then one) to match exact type.
  178. ;The Following four bits will indicate sort ordering in enumeration.
  179. ;
  180. ;kSupportsOrderedEnumerationBit:
  181. ;If this bit is set, Enumerated records or in some order possibly in name order.
  182. ;
  183. ;kCanSupportNameOrderBit:
  184. ;If this is set, catalog will support sortbyName option in Enumerate.
  185. ;
  186. ;kCanSupportTypeOrderBit:
  187. ;If this bit is set, catalog will support sortbyType option in enumearte.
  188. ;
  189. ;kSupportSortBackwardsBit:
  190. ;If this bit is set, catalog supports backward sorting.
  191. ;
  192. ;kSupportIndexRatioBit:
  193. ;If this bit is set, it indicates that enumeration will return approximate position
  194. ;of a record (percentile) among all records.
  195. ;
  196. ;kSupportsEnumerationContinueBit:
  197. ;If this bit is set, catalog supports enumeration continue.
  198. ;
  199. ;kSupportsLookupContinueBit:
  200. ;If this bit is set, catalog supports lookup continue.
  201. ;
  202. ;kSupportsEnumerateAttributeTypeContinueBit:
  203. ;If this bit is set, catalog supports EnumerateAttributeType continue.
  204. ;
  205. ;kSupportsEnumeratePseudonymContinueBit:
  206. ;If this bit is set, catalog supports EnumeratePseudonym continue.
  207. ;
  208. ;kSupportsAliasesBit:
  209. ;If this bit is set, catalog supports create/delte/enumerate 
  210. ;of Alias Records.
  211. ;
  212. ;kSupportPseudonymBit: 
  213. ;If this bit is set, catalog supports create/delte/enumerate of 
  214. ;pseudonyms for a record.
  215. ;
  216. ;kSupportsPartialPathNameBit:
  217. ;If this bit is set, catalog nodes can be specified using DNodeNumber of a 
  218. ;intermediate DNode and a partial name starting from that DNode to the intended 
  219. ;DNode.
  220. ;
  221. ;kSupportsAuthenticationBit:
  222. ;If this bit is set, catalog supports authentication manager calls.
  223. ;
  224. ;kSupportsProxiesBit:
  225. ;If this bit is set, catalog supports proxy related calls in authentication manager. 
  226. ;
  227. ;kSupportsFindRecordBit:
  228. ;If this bit is set, catalog supports find record call.
  229. ;
  230. ;Bits and corresponding masks are as defined below.
  231. ;
  232.  
  233. kSupportsDNodeNumberBit            EQU        0
  234. kSupportsRecordCreationIDBit    EQU        1
  235. kSupportsAttributeCreationIDBit    EQU        2
  236. kSupportsMatchAllBit            EQU        3
  237. kSupportsBeginsWithBit            EQU        4
  238. kSupportsExactMatchBit            EQU        5
  239. kSupportsEndsWithBit            EQU        6
  240. kSupportsContainsBit            EQU        7
  241. kSupportsOrderedEnumerationBit    EQU        8
  242. kCanSupportNameOrderBit            EQU        9
  243. kCanSupportTypeOrderBit            EQU        10
  244. kSupportSortBackwardsBit        EQU        11
  245. kSupportIndexRatioBit            EQU        12
  246. kSupportsEnumerationContinueBit    EQU        13
  247. kSupportsLookupContinueBit        EQU        14
  248. kSupportsEnumerateAttributeTypeContinueBit EQU 15
  249. kSupportsEnumeratePseudonymContinueBit EQU 16
  250. kSupportsAliasesBit                EQU        17
  251. kSupportsPseudonymsBit            EQU        18
  252. kSupportsPartialPathNamesBit    EQU        19
  253. kSupportsAuthenticationBit        EQU        20
  254. kSupportsProxiesBit                EQU        21
  255. kSupportsFindRecordBit            EQU        22
  256. ;  values of DirGestalt 
  257.  
  258. kSupportsDNodeNumberMask        EQU        1
  259. kSupportsRecordCreationIDMask    EQU        2
  260. kSupportsAttributeCreationIDMask EQU    4
  261. kSupportsMatchAllMask            EQU        8
  262. kSupportsBeginsWithMask            EQU        16
  263. kSupportsExactMatchMask            EQU        32
  264. kSupportsEndsWithMask            EQU        64
  265. kSupportsContainsMask            EQU        128
  266. kSupportsOrderedEnumerationMask    EQU        256
  267. kCanSupportNameOrderMask        EQU        512
  268. kCanSupportTypeOrderMask        EQU        1024
  269. kSupportSortBackwardsMask        EQU        2048
  270. kSupportIndexRatioMask            EQU        4096
  271. kSupportsEnumerationContinueMask EQU    8192
  272. kSupportsLookupContinueMask        EQU        16384
  273. kSupportsEnumerateAttributeTypeContinueMask EQU 32768
  274. kSupportsEnumeratePseudonymContinueMask EQU 65536
  275. kSupportsAliasesMask            EQU        131072
  276. kSupportsPseudonymsMask            EQU        262144
  277. kSupportsPartialPathNamesMask    EQU        524288
  278. kSupportsAuthenticationMask        EQU        1048576
  279. kSupportsProxiesMask            EQU        2097152
  280. kSupportsFindRecordMask            EQU        4194304
  281. ;  Values of AuthLocalIdentityOp 
  282.  
  283. kAuthLockLocalIdentityOp        EQU        1
  284. kAuthUnlockLocalIdentityOp        EQU        2
  285. kAuthLocalIdentityNameChangeOp    EQU        3
  286. ;  Values of AuthLocalIdentityLockAction 
  287.  
  288. kAuthLockPending                EQU        1
  289. kAuthLockWillBeDone                EQU        2
  290. ;  Values of AuthNotifications 
  291.  
  292. kNotifyLockBit                    EQU        0
  293. kNotifyUnlockBit                EQU        1
  294. kNotifyNameChangeBit            EQU        2
  295.  
  296. kNotifyLockMask                    EQU        1
  297. kNotifyUnlockMask                EQU        2
  298. kNotifyNameChangeMask            EQU        4
  299.  
  300. kPersonalDirectoryFileCreator    EQU        'kl03'
  301. kPersonalDirectoryFileType        EQU        'pabt'
  302. kBusinessCardFileType            EQU        'bust'
  303. kDirectoryFileType                EQU        'dirt'
  304. kDNodeFileType                    EQU        'dnod'
  305. kDirsRootFileType                EQU        'drtt'
  306. kRecordFileType                    EQU        'rcrd'
  307. ; typedef unsigned short                 DirSortOption
  308.  
  309. ; typedef unsigned short                 DirSortDirection
  310.  
  311. ; typedef unsigned long                 AccessMask
  312.  
  313. ; typedef unsigned long                 DirGestalt
  314.  
  315. ; typedef unsigned long                 AuthLocalIdentityOp
  316.  
  317. ; typedef unsigned long                 AuthLocalIdentityLockAction
  318.  
  319. ; typedef unsigned long                 AuthNotifications
  320.  
  321. DNodeID                    RECORD 0
  322. dNodeNumber                 ds.l    1                ; offset: $0 (0)        ;  dNodenumber  
  323. reserved1                 ds.l    1                ; offset: $4 (4)
  324. name                     ds.l    1                ; offset: $8 (8)
  325. reserved2                 ds.l    1                ; offset: $C (12)
  326. sizeof                     EQU *                    ; size:   $10 (16)
  327.                         ENDR
  328. DirEnumSpec                RECORD 0
  329. enumFlag                 ds.l    1                ; offset: $0 (0)
  330. indexRatio                 ds.w    1                ; offset: $4 (4)        ;  Approx Record Position between 1 and 100 If supported, 0 If not supported 
  331. recordIdentifier         ds        LocalRecordID    ; offset: $6 (6)
  332.                          ORG 6
  333. dNodeIdentifier             ds        DNodeID            ; offset: $6 (6)
  334. sizeof                     EQU *                    ; size:   $16 (22)
  335.                         ENDR
  336. DirMetaInfo                RECORD 0
  337. info                     ds.l    4                ; offset: $0 (0)
  338. sizeof                     EQU *                    ; size:   $10 (16)
  339.                         ENDR
  340. SLRV                    RECORD 0
  341. script                     ds.w    1                ; offset: $0 (0)        ;    Script code in which entries are sorted 
  342. language                 ds.w    1                ; offset: $2 (2)        ;    Language code in which entries are sorted 
  343. regionCode                 ds.w    1                ; offset: $4 (4)        ;    Region code in which entries are sorted 
  344. version                     ds.w    1                ; offset: $6 (6)        ;   version of oce sorting software 
  345. sizeof                     EQU *                    ; size:   $8 (8)
  346.                         ENDR
  347. ;  Catalog types and operations 
  348. ;  unique identifier for an identity 
  349. ; typedef unsigned long                 AuthIdentity
  350.  
  351. ;  Umbrella LocalIdentity 
  352. ; typedef AuthIdentity                     LocalIdentity
  353.  
  354. ;  A DES key is 8 bytes of data 
  355. DESKey                    RECORD 0
  356. desA                     ds.l    1                ; offset: $0 (0)
  357. desB                     ds.l    1                ; offset: $4 (4)
  358. sizeof                     EQU *                    ; size:   $8 (8)
  359.                         ENDR
  360. RC4Key                    RECORD 0
  361. elements                 ds.b    8
  362. sizeof                     EQU *                    ; size:   $8 (8)
  363.                         ENDR
  364.  
  365.  
  366. ; typedef unsigned long                 AuthKeyType
  367.  
  368. ;  key type followed by its data 
  369. AuthKey                    RECORD 0
  370. keyType                     ds.l    1                ; offset: $0 (0)
  371. des                         ds        DESKey            ; offset: $4 (4)
  372.                          ORG 4
  373. rc4                         ds        RC4Key            ; offset: $4 (4)
  374. sizeof                     EQU *                    ; size:   $C (12)
  375.                         ENDR
  376. ; typedef struct AuthKey *                AuthKeyPtr
  377.  
  378.  
  379.  
  380. ; typedef AuthParamBlock *                AuthParamBlockPtr
  381.  
  382. ;  Fix parameter passing convention (#1274062) ggs, 8-7-95 
  383. ;
  384. ;****************************************************************************
  385. ;
  386. ;
  387. ;        Authentication Manager operations 
  388. ;
  389. ;****************************************************************************
  390. ;
  391. ;
  392. ;kAuthResolveCreationID:
  393. ;userRecord will contain the user information whose creationID has to be
  394. ;returned. A client must make this call when he does not know the creaitionID.
  395. ;The creationID must be set to nil before making the call. The server will attempt
  396. ;to match the recordid's in the data base which match the user name and
  397. ;type in the record.  Depending on number of matchings, following
  398. ;results will be returned.
  399. ;Exactly One Match : CreationID in RecordID and also in buffer (if buffer is given)
  400. ;totalMatches = actualMatches = 1.
  401. ;> 1 Match:
  402. ;    Buffer is Large Enough:
  403. ;    totalMatches = actualMatches
  404. ;    Buffer will contain all the CIDs, kOCEAmbiguousMatches error.
  405. ;> 1 Match:
  406. ;    Buffer is not Large Enough:
  407. ;    totalMatches > actualMatches
  408. ;    Buffer will contain all the CIDs (equal to actualMatches), daMoreDataError error.
  409. ;0 Matches:
  410. ; kOCENoSuchRecord error
  411. ;
  412. AuthResolveCreationIDPB    RECORD 0
  413. qLink                     ds.l    1                ; offset: $0 (0)
  414. reserved1                 ds.l    1                ; offset: $4 (4)
  415. reserved2                 ds.l    1                ; offset: $8 (8)
  416. ioCompletion             ds.l    1                ; offset: $C (12)
  417. ioResult                 ds.w    1                ; offset: $10 (16)
  418. saveA5                     ds.l    1                ; offset: $12 (18)
  419. reqCode                     ds.w    1                ; offset: $16 (22)
  420. reserved                 ds.l    2                ; offset: $18 (24)
  421. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  422. dsRefNum                 ds.w    1                ; offset: $24 (36)
  423. callID                     ds.l    1                ; offset: $26 (38)
  424. identity                 ds.l    1                ; offset: $2A (42)
  425. gReserved1                 ds.l    1                ; offset: $2E (46)
  426. gReserved2                 ds.l    1                ; offset: $32 (50)
  427. gReserved3                 ds.l    1                ; offset: $36 (54)
  428. clientData                 ds.l    1                ; offset: $3A (58)
  429. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  430. bufferLength             ds.l    1                ; offset: $42 (66)        ;   --> Buffer Size to hold duplicate Info 
  431. buffer                     ds.l    1                ; offset: $46 (70)        ;   --> Buffer  to hold duplicate Info 
  432. totalMatches             ds.l    1                ; offset: $4A (74)        ;  <--  Total Number of matching names found 
  433. actualMatches             ds.l    1                ; offset: $4E (78)        ;  <--  Number of matches returned in the buffer 
  434. sizeof                     EQU *                    ; size:   $52 (82)
  435.                         ENDR
  436. ;
  437. ;kAuthBindSpecificIdentity:
  438. ;userRecord will contain the user information whose identity has to be
  439. ;verified. userKey will contain the userKey. An Identity is returned which
  440. ;binds the key and the userRecord. The identity returned can be used in the 'identity'
  441. ;field in the header portion (AuthParamHeader) for authenticating the Catalog and
  442. ;Authentication manager calls.
  443. ;
  444. AuthBindSpecificIdentityPB RECORD 0
  445. qLink                     ds.l    1                ; offset: $0 (0)
  446. reserved1                 ds.l    1                ; offset: $4 (4)
  447. reserved2                 ds.l    1                ; offset: $8 (8)
  448. ioCompletion             ds.l    1                ; offset: $C (12)
  449. ioResult                 ds.w    1                ; offset: $10 (16)
  450. saveA5                     ds.l    1                ; offset: $12 (18)
  451. reqCode                     ds.w    1                ; offset: $16 (22)
  452. reserved                 ds.l    2                ; offset: $18 (24)
  453. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  454. dsRefNum                 ds.w    1                ; offset: $24 (36)
  455. callID                     ds.l    1                ; offset: $26 (38)
  456. identity                 ds.l    1                ; offset: $2A (42)
  457. gReserved1                 ds.l    1                ; offset: $2E (46)
  458. gReserved2                 ds.l    1                ; offset: $32 (50)
  459. gReserved3                 ds.l    1                ; offset: $36 (54)
  460. clientData                 ds.l    1                ; offset: $3A (58)
  461. userIdentity             ds.l    1                ; offset: $3E (62)        ;  <--  binding identity 
  462. userRecord                 ds.l    1                ; offset: $42 (66)        ;   --> OCE name(Record) of the user 
  463. userKey                     ds.l    1                ; offset: $46 (70)        ;   --> OCE Key for the user 
  464. sizeof                     EQU *                    ; size:   $4A (74)
  465.                         ENDR
  466. ;
  467. ;kAuthUnbindSpecificIdentity:
  468. ;This call will unbind the userRecord and key which were bind earlier.
  469. ;
  470. AuthUnbindSpecificIdentityPB RECORD 0
  471. qLink                     ds.l    1                ; offset: $0 (0)
  472. reserved1                 ds.l    1                ; offset: $4 (4)
  473. reserved2                 ds.l    1                ; offset: $8 (8)
  474. ioCompletion             ds.l    1                ; offset: $C (12)
  475. ioResult                 ds.w    1                ; offset: $10 (16)
  476. saveA5                     ds.l    1                ; offset: $12 (18)
  477. reqCode                     ds.w    1                ; offset: $16 (22)
  478. reserved                 ds.l    2                ; offset: $18 (24)
  479. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  480. dsRefNum                 ds.w    1                ; offset: $24 (36)
  481. callID                     ds.l    1                ; offset: $26 (38)
  482. identity                 ds.l    1                ; offset: $2A (42)
  483. gReserved1                 ds.l    1                ; offset: $2E (46)
  484. gReserved2                 ds.l    1                ; offset: $32 (50)
  485. gReserved3                 ds.l    1                ; offset: $36 (54)
  486. clientData                 ds.l    1                ; offset: $3A (58)
  487. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity to be deleted 
  488. sizeof                     EQU *                    ; size:   $42 (66)
  489.                         ENDR
  490. ;
  491. ;kAuthGetSpecificIdentityInfo:
  492. ;This call will return the userRecord for the given identity. Note: key is not
  493. ;returned because this would compromise security.
  494. ;
  495. AuthGetSpecificIdentityInfoPB RECORD 0
  496. qLink                     ds.l    1                ; offset: $0 (0)
  497. reserved1                 ds.l    1                ; offset: $4 (4)
  498. reserved2                 ds.l    1                ; offset: $8 (8)
  499. ioCompletion             ds.l    1                ; offset: $C (12)
  500. ioResult                 ds.w    1                ; offset: $10 (16)
  501. saveA5                     ds.l    1                ; offset: $12 (18)
  502. reqCode                     ds.w    1                ; offset: $16 (22)
  503. reserved                 ds.l    2                ; offset: $18 (24)
  504. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  505. dsRefNum                 ds.w    1                ; offset: $24 (36)
  506. callID                     ds.l    1                ; offset: $26 (38)
  507. identity                 ds.l    1                ; offset: $2A (42)
  508. gReserved1                 ds.l    1                ; offset: $2E (46)
  509. gReserved2                 ds.l    1                ; offset: $32 (50)
  510. gReserved3                 ds.l    1                ; offset: $36 (54)
  511. clientData                 ds.l    1                ; offset: $3A (58)
  512. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity of initiator 
  513. userRecord                 ds.l    1                ; offset: $42 (66)        ;  <--  OCE name(Record) of the user 
  514. sizeof                     EQU *                    ; size:   $46 (70)
  515.                         ENDR
  516. ;
  517. ;kAuthAddKey:
  518. ;userRecord will contain the user information whose identity has to be
  519. ;created. userKey will point to the key to be created. password points to
  520. ;an RString containing the password used to generate the key.
  521. ;
  522. AuthAddKeyPB            RECORD 0
  523. qLink                     ds.l    1                ; offset: $0 (0)
  524. reserved1                 ds.l    1                ; offset: $4 (4)
  525. reserved2                 ds.l    1                ; offset: $8 (8)
  526. ioCompletion             ds.l    1                ; offset: $C (12)
  527. ioResult                 ds.w    1                ; offset: $10 (16)
  528. saveA5                     ds.l    1                ; offset: $12 (18)
  529. reqCode                     ds.w    1                ; offset: $16 (22)
  530. reserved                 ds.l    2                ; offset: $18 (24)
  531. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  532. dsRefNum                 ds.w    1                ; offset: $24 (36)
  533. callID                     ds.l    1                ; offset: $26 (38)
  534. identity                 ds.l    1                ; offset: $2A (42)
  535. gReserved1                 ds.l    1                ; offset: $2E (46)
  536. gReserved2                 ds.l    1                ; offset: $32 (50)
  537. gReserved3                 ds.l    1                ; offset: $36 (54)
  538. clientData                 ds.l    1                ; offset: $3A (58)
  539. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  540. userKey                     ds.l    1                ; offset: $42 (66)        ;  <--  OCE Key for the user 
  541. password                 ds.l    1                ; offset: $46 (70)        ;   --> Pointer to password string 
  542. sizeof                     EQU *                    ; size:   $4A (74)
  543.                         ENDR
  544. ;
  545. ;kAuthChangeKey:
  546. ;userRecord will contain the user information whose identity has to be
  547. ;created. userKey will point to the key to be created. password points to
  548. ;an RString containing the password used to generate the key.
  549. ;
  550. AuthChangeKeyPB            RECORD 0
  551. qLink                     ds.l    1                ; offset: $0 (0)
  552. reserved1                 ds.l    1                ; offset: $4 (4)
  553. reserved2                 ds.l    1                ; offset: $8 (8)
  554. ioCompletion             ds.l    1                ; offset: $C (12)
  555. ioResult                 ds.w    1                ; offset: $10 (16)
  556. saveA5                     ds.l    1                ; offset: $12 (18)
  557. reqCode                     ds.w    1                ; offset: $16 (22)
  558. reserved                 ds.l    2                ; offset: $18 (24)
  559. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  560. dsRefNum                 ds.w    1                ; offset: $24 (36)
  561. callID                     ds.l    1                ; offset: $26 (38)
  562. identity                 ds.l    1                ; offset: $2A (42)
  563. gReserved1                 ds.l    1                ; offset: $2E (46)
  564. gReserved2                 ds.l    1                ; offset: $32 (50)
  565. gReserved3                 ds.l    1                ; offset: $36 (54)
  566. clientData                 ds.l    1                ; offset: $3A (58)
  567. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  568. userKey                     ds.l    1                ; offset: $42 (66)        ;  <--  New OCE Key for the user 
  569. password                 ds.l    1                ; offset: $46 (70)        ;   -->Pointer to the new password string 
  570. sizeof                     EQU *                    ; size:   $4A (74)
  571.                         ENDR
  572. ;
  573. ;AuthDeleteKey:
  574. ;userRecord will contain the user information whose Key has to be deleted.
  575. ;
  576. AuthDeleteKeyPB            RECORD 0
  577. qLink                     ds.l    1                ; offset: $0 (0)
  578. reserved1                 ds.l    1                ; offset: $4 (4)
  579. reserved2                 ds.l    1                ; offset: $8 (8)
  580. ioCompletion             ds.l    1                ; offset: $C (12)
  581. ioResult                 ds.w    1                ; offset: $10 (16)
  582. saveA5                     ds.l    1                ; offset: $12 (18)
  583. reqCode                     ds.w    1                ; offset: $16 (22)
  584. reserved                 ds.l    2                ; offset: $18 (24)
  585. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  586. dsRefNum                 ds.w    1                ; offset: $24 (36)
  587. callID                     ds.l    1                ; offset: $26 (38)
  588. identity                 ds.l    1                ; offset: $2A (42)
  589. gReserved1                 ds.l    1                ; offset: $2E (46)
  590. gReserved2                 ds.l    1                ; offset: $32 (50)
  591. gReserved3                 ds.l    1                ; offset: $36 (54)
  592. clientData                 ds.l    1                ; offset: $3A (58)
  593. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  594. sizeof                     EQU *                    ; size:   $42 (66)
  595.                         ENDR
  596. ;  AuthPasswordToKey: Converts an RString into a key. 
  597. AuthPasswordToKeyPB        RECORD 0
  598. qLink                     ds.l    1                ; offset: $0 (0)
  599. reserved1                 ds.l    1                ; offset: $4 (4)
  600. reserved2                 ds.l    1                ; offset: $8 (8)
  601. ioCompletion             ds.l    1                ; offset: $C (12)
  602. ioResult                 ds.w    1                ; offset: $10 (16)
  603. saveA5                     ds.l    1                ; offset: $12 (18)
  604. reqCode                     ds.w    1                ; offset: $16 (22)
  605. reserved                 ds.l    2                ; offset: $18 (24)
  606. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  607. dsRefNum                 ds.w    1                ; offset: $24 (36)
  608. callID                     ds.l    1                ; offset: $26 (38)
  609. identity                 ds.l    1                ; offset: $2A (42)
  610. gReserved1                 ds.l    1                ; offset: $2E (46)
  611. gReserved2                 ds.l    1                ; offset: $32 (50)
  612. gReserved3                 ds.l    1                ; offset: $36 (54)
  613. clientData                 ds.l    1                ; offset: $3A (58)
  614. userRecord                 ds.l    1                ; offset: $3E (62)        ;   --> OCE name(Record) of the user 
  615. key                         ds.l    1                ; offset: $42 (66)        ;  <--  
  616. password                 ds.l    1                ; offset: $46 (70)        ;   -->Pointer to the new password string 
  617. sizeof                     EQU *                    ; size:   $4A (74)
  618.                         ENDR
  619. ;
  620. ;kAuthGetCredentials:
  621. ;userRecord will contain the user information whose identity has to be
  622. ;kMailDeletedMask. keyType (e.g. asDESKey) will indicate what type of key has to
  623. ;be deleted.
  624. ;
  625. AuthGetCredentialsPB    RECORD 0
  626. qLink                     ds.l    1                ; offset: $0 (0)
  627. reserved1                 ds.l    1                ; offset: $4 (4)
  628. reserved2                 ds.l    1                ; offset: $8 (8)
  629. ioCompletion             ds.l    1                ; offset: $C (12)
  630. ioResult                 ds.w    1                ; offset: $10 (16)
  631. saveA5                     ds.l    1                ; offset: $12 (18)
  632. reqCode                     ds.w    1                ; offset: $16 (22)
  633. reserved                 ds.l    2                ; offset: $18 (24)
  634. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  635. dsRefNum                 ds.w    1                ; offset: $24 (36)
  636. callID                     ds.l    1                ; offset: $26 (38)
  637. identity                 ds.l    1                ; offset: $2A (42)
  638. gReserved1                 ds.l    1                ; offset: $2E (46)
  639. gReserved2                 ds.l    1                ; offset: $32 (50)
  640. gReserved3                 ds.l    1                ; offset: $36 (54)
  641. clientData                 ds.l    1                ; offset: $3A (58)
  642. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity of initiator 
  643. recipient                 ds.l    1                ; offset: $42 (66)        ;   --> OCE name of recipient 
  644. sessionKey                 ds.l    1                ; offset: $46 (70)        ;  <--  session key 
  645. expiry                     ds.l    1                ; offset: $4A (74)        ;  <--> desired/actual expiry 
  646. credentialsLength         ds.l    1                ; offset: $4E (78)        ;  <--> max/actual credentials size 
  647. credentials                 ds.l    1                ; offset: $52 (82)        ;  <--  buffer where credentials are returned 
  648. sizeof                     EQU *                    ; size:   $56 (86)
  649.                         ENDR
  650. ;
  651. ;AuthDecryptCredentialsPB:
  652. ;Changes:
  653. ;userKey is changed userIdentity.
  654. ;userRecord is changed to initiatorRecord. User must supply buffer
  655. ;to hold initiatorRecord.
  656. ;agentList has changed to agent. There wil be no call back.
  657. ;User must supply buffer to hold agent Record.
  658. ;An additional boolean parameter 'hasAgent' is included.
  659. ;Toolbox will set this if an 'Agent' record is found in the
  660. ;credentials. If RecordIDPtr is 'nil', no agent record will
  661. ;be copied. However user can examine 'hasAgent', If true user
  662. ;can reissue this call with apprpriate buffer for getting a recordID.
  663. ;agent has changed to intermediary.  User must supply buffer to hold 
  664. ;intermediary Record.  The toolbox will set 'hasIntermediary' if an
  665. ;'intermediary' record is found in the credentials. 
  666. ;
  667. AuthDecryptCredentialsPB RECORD 0
  668. qLink                     ds.l    1                ; offset: $0 (0)
  669. reserved1                 ds.l    1                ; offset: $4 (4)
  670. reserved2                 ds.l    1                ; offset: $8 (8)
  671. ioCompletion             ds.l    1                ; offset: $C (12)
  672. ioResult                 ds.w    1                ; offset: $10 (16)
  673. saveA5                     ds.l    1                ; offset: $12 (18)
  674. reqCode                     ds.w    1                ; offset: $16 (22)
  675. reserved                 ds.l    2                ; offset: $18 (24)
  676. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  677. dsRefNum                 ds.w    1                ; offset: $24 (36)
  678. callID                     ds.l    1                ; offset: $26 (38)
  679. identity                 ds.l    1                ; offset: $2A (42)
  680. gReserved1                 ds.l    1                ; offset: $2E (46)
  681. gReserved2                 ds.l    1                ; offset: $32 (50)
  682. gReserved3                 ds.l    1                ; offset: $36 (54)
  683. clientData                 ds.l    1                ; offset: $3A (58)
  684. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> user's Identity 
  685. initiatorRecord             ds.l    1                ; offset: $42 (66)        ;  <--  OCE name of the initiator 
  686. sessionKey                 ds.l    1                ; offset: $46 (70)        ;  <--  session key 
  687. expiry                     ds.l    1                ; offset: $4A (74)        ;  <--  credentials expiry time 
  688. credentialsLength         ds.l    1                ; offset: $4E (78)        ;   --> actual credentials size 
  689. credentials                 ds.l    1                ; offset: $52 (82)        ;   --> credentials to be decrypted 
  690. issueTime                 ds.l    1                ; offset: $56 (86)        ;  <--  credentials expiry time 
  691. hasIntermediary             ds.b    1                ; offset: $5A (90)        ;  <--  if true, An intermediary Record was found in credentials 
  692. filler1                     ds.b    1                ; offset: $5B (91)
  693. intermediary             ds.l    1                ; offset: $5C (92)        ;  <--  recordID of the intermediary 
  694. sizeof                     EQU *                    ; size:   $60 (96)
  695.                         ENDR
  696. AuthMakeChallengePB        RECORD 0
  697. qLink                     ds.l    1                ; offset: $0 (0)
  698. reserved1                 ds.l    1                ; offset: $4 (4)
  699. reserved2                 ds.l    1                ; offset: $8 (8)
  700. ioCompletion             ds.l    1                ; offset: $C (12)
  701. ioResult                 ds.w    1                ; offset: $10 (16)
  702. saveA5                     ds.l    1                ; offset: $12 (18)
  703. reqCode                     ds.w    1                ; offset: $16 (22)
  704. reserved                 ds.l    2                ; offset: $18 (24)
  705. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  706. dsRefNum                 ds.w    1                ; offset: $24 (36)
  707. callID                     ds.l    1                ; offset: $26 (38)
  708. identity                 ds.l    1                ; offset: $2A (42)
  709. gReserved1                 ds.l    1                ; offset: $2E (46)
  710. gReserved2                 ds.l    1                ; offset: $32 (50)
  711. gReserved3                 ds.l    1                ; offset: $36 (54)
  712. clientData                 ds.l    1                ; offset: $3A (58)
  713. key                         ds.l    1                ; offset: $3E (62)        ;   --> UnEncrypted SessionKey 
  714. challenge                 ds.l    1                ; offset: $42 (66)        ;  <--  Encrypted Challenge 
  715. challengeBufferLength     ds.l    1                ; offset: $46 (70)        ;   ->length of challenge buffer 
  716. challengeLength             ds.l    1                ; offset: $4A (74)        ;   <-length of Encrypted Challenge 
  717. sizeof                     EQU *                    ; size:   $4E (78)
  718.                         ENDR
  719. AuthMakeReplyPB            RECORD 0
  720. qLink                     ds.l    1                ; offset: $0 (0)
  721. reserved1                 ds.l    1                ; offset: $4 (4)
  722. reserved2                 ds.l    1                ; offset: $8 (8)
  723. ioCompletion             ds.l    1                ; offset: $C (12)
  724. ioResult                 ds.w    1                ; offset: $10 (16)
  725. saveA5                     ds.l    1                ; offset: $12 (18)
  726. reqCode                     ds.w    1                ; offset: $16 (22)
  727. reserved                 ds.l    2                ; offset: $18 (24)
  728. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  729. dsRefNum                 ds.w    1                ; offset: $24 (36)
  730. callID                     ds.l    1                ; offset: $26 (38)
  731. identity                 ds.l    1                ; offset: $2A (42)
  732. gReserved1                 ds.l    1                ; offset: $2E (46)
  733. gReserved2                 ds.l    1                ; offset: $32 (50)
  734. gReserved3                 ds.l    1                ; offset: $36 (54)
  735. clientData                 ds.l    1                ; offset: $3A (58)
  736. key                         ds.l    1                ; offset: $3E (62)        ;   --> UnEncrypted SessionKey 
  737. challenge                 ds.l    1                ; offset: $42 (66)        ;   --> Encrypted Challenge 
  738. reply                     ds.l    1                ; offset: $46 (70)        ;  <--  Encrypted Reply 
  739. replyBufferLength         ds.l    1                ; offset: $4A (74)        ;   -->length of challenge buffer 
  740. challengeLength             ds.l    1                ; offset: $4E (78)        ;   --> length of Encrypted Challenge 
  741. replyLength                 ds.l    1                ; offset: $52 (82)        ;  <--  length of Encrypted Reply 
  742. sizeof                     EQU *                    ; size:   $56 (86)
  743.                         ENDR
  744. AuthVerifyReplyPB        RECORD 0
  745. qLink                     ds.l    1                ; offset: $0 (0)
  746. reserved1                 ds.l    1                ; offset: $4 (4)
  747. reserved2                 ds.l    1                ; offset: $8 (8)
  748. ioCompletion             ds.l    1                ; offset: $C (12)
  749. ioResult                 ds.w    1                ; offset: $10 (16)
  750. saveA5                     ds.l    1                ; offset: $12 (18)
  751. reqCode                     ds.w    1                ; offset: $16 (22)
  752. reserved                 ds.l    2                ; offset: $18 (24)
  753. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  754. dsRefNum                 ds.w    1                ; offset: $24 (36)
  755. callID                     ds.l    1                ; offset: $26 (38)
  756. identity                 ds.l    1                ; offset: $2A (42)
  757. gReserved1                 ds.l    1                ; offset: $2E (46)
  758. gReserved2                 ds.l    1                ; offset: $32 (50)
  759. gReserved3                 ds.l    1                ; offset: $36 (54)
  760. clientData                 ds.l    1                ; offset: $3A (58)
  761. key                         ds.l    1                ; offset: $3E (62)        ;   --> UnEncrypted SessionKey 
  762. challenge                 ds.l    1                ; offset: $42 (66)        ;   --> Encrypted Challenge 
  763. reply                     ds.l    1                ; offset: $46 (70)        ;   --> Encrypted Reply 
  764. challengeLength             ds.l    1                ; offset: $4A (74)        ;   --> length of Encrypted Challenge 
  765. replyLength                 ds.l    1                ; offset: $4E (78)        ;   --> length of Encrypted Reply 
  766. sizeof                     EQU *                    ; size:   $52 (82)
  767.                         ENDR
  768. ;
  769. ;kAuthGetUTCTime:
  770. ;RLI will contain a valid RLI for a cluster server.
  771. ;UTC(GMT) time from one of the cluster server will be returned.
  772. ;An 'offSet' from UTC(GMT) to Mac Local Time will also be returned.
  773. ;If RLI is nil Map DA is used to determine UTC(GMT).
  774. ;Mac Local Time = theUTCTime + theUTCOffset.
  775. ;
  776. AuthGetUTCTimePB        RECORD 0
  777. qLink                     ds.l    1                ; offset: $0 (0)
  778. reserved1                 ds.l    1                ; offset: $4 (4)
  779. reserved2                 ds.l    1                ; offset: $8 (8)
  780. ioCompletion             ds.l    1                ; offset: $C (12)
  781. ioResult                 ds.w    1                ; offset: $10 (16)
  782. saveA5                     ds.l    1                ; offset: $12 (18)
  783. reqCode                     ds.w    1                ; offset: $16 (22)
  784. reserved                 ds.l    2                ; offset: $18 (24)
  785. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  786. dsRefNum                 ds.w    1                ; offset: $24 (36)
  787. callID                     ds.l    1                ; offset: $26 (38)
  788. identity                 ds.l    1                ; offset: $2A (42)
  789. gReserved1                 ds.l    1                ; offset: $2E (46)
  790. gReserved2                 ds.l    1                ; offset: $32 (50)
  791. gReserved3                 ds.l    1                ; offset: $36 (54)
  792. clientData                 ds.l    1                ; offset: $3A (58)
  793. pRLI                     ds.l    1                ; offset: $3E (62)        ;   --> packed RLI of the Node, whose server's UTC is requested 
  794. theUTCTime                 ds.l    1                ; offset: $42 (66)        ;  <--  current UTC(GMT) Time utc seconds since 1/1/1904 
  795. theUTCOffset             ds.l    1                ; offset: $46 (70)        ;  <--  offset from UTC(GMT) seconds EAST of Greenwich 
  796. sizeof                     EQU *                    ; size:   $4A (74)
  797.                         ENDR
  798. ;
  799. ;kAuthMakeProxy:
  800. ;A user represented bu the 'userIdentity' can make a proxy using this call.
  801. ;'recipient' is the RecordID of the recipient whom user is requesting proxy.
  802. ;'intermediary' is the RecordID of the intermediary holding proxy for the user.
  803. ;'firstValid' is time at which proxy becomes valid.
  804. ;'expiry' is the time at which proxy must expire.
  805. ;'proxyLength' will have the length of the buffer pointed by 'proxy' as input.
  806. ;When the call completes, it will hold the actual length of proxy. If the
  807. ;call completes 'kOCEMoreData' error, client can reissue the call with the
  808. ;buffer size as 'proxyLength' returned.
  809. ;expiry is a suggestion, and may be adjusted to be earlier by the ADAP/OCE server.
  810. ;The 'proxy' obtained like this might be used by the 'intermediary' to obtain credentials
  811. ;for the server using TradeProxyForCredentials call.
  812. ;authDataLength and authData are intended for possible future work, but are
  813. ;ignored for now.
  814. ;
  815. AuthMakeProxyPB            RECORD 0
  816. qLink                     ds.l    1                ; offset: $0 (0)
  817. reserved1                 ds.l    1                ; offset: $4 (4)
  818. reserved2                 ds.l    1                ; offset: $8 (8)
  819. ioCompletion             ds.l    1                ; offset: $C (12)
  820. ioResult                 ds.w    1                ; offset: $10 (16)
  821. saveA5                     ds.l    1                ; offset: $12 (18)
  822. reqCode                     ds.w    1                ; offset: $16 (22)
  823. reserved                 ds.l    2                ; offset: $18 (24)
  824. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  825. dsRefNum                 ds.w    1                ; offset: $24 (36)
  826. callID                     ds.l    1                ; offset: $26 (38)
  827. identity                 ds.l    1                ; offset: $2A (42)
  828. gReserved1                 ds.l    1                ; offset: $2E (46)
  829. gReserved2                 ds.l    1                ; offset: $32 (50)
  830. gReserved3                 ds.l    1                ; offset: $36 (54)
  831. clientData                 ds.l    1                ; offset: $3A (58)
  832. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity of principal 
  833. recipient                 ds.l    1                ; offset: $42 (66)        ;   --> OCE name of recipient 
  834. firstValid                 ds.l    1                ; offset: $46 (70)        ;   --> time at which proxy becomes valid 
  835. expiry                     ds.l    1                ; offset: $4A (74)        ;   --> time at which proxy expires 
  836. authDataLength             ds.l    1                ; offset: $4E (78)        ;   --> size of authorization data 
  837. authData                 ds.l    1                ; offset: $52 (82)        ;   --> pointer to authorization data 
  838. proxyLength                 ds.l    1                ; offset: $56 (86)        ;  <--> max/actual proxy size 
  839. proxy                     ds.l    1                ; offset: $5A (90)        ;  <--> buffer where proxy is returned 
  840. intermediary             ds.l    1                ; offset: $5E (94)        ;   --> RecordID of intermediary 
  841. sizeof                     EQU *                    ; size:   $62 (98)
  842.                         ENDR
  843. ;
  844. ;kAuthTradeProxyForCredentials:
  845. ;Using this call, intermediary holding a 'proxy' for a recipient may obtain credentials
  846. ;for that recipient. 'userIdentity' is the identity for the 'intermediary'.
  847. ;'recipient' is the RecordID for whom credetials are requested.
  848. ;'principal' is the RecordID of the user who created the proxy.
  849. ;'proxyLength' is the length of data pointed by 'proxy.
  850. ;If the call is succesfull, credentials will be returned in the
  851. ;buffer pointed by 'credentials'. 'expiry' is the desired expiry time at input.
  852. ;When call succeds this will have expiry time of credentials.
  853. ;This is very similar to GetCredentials except that we (of course) need the proxy,
  854. ;but we also need the name of the principal who created the proxy.
  855. ;
  856. AuthTradeProxyForCredentialsPB RECORD 0
  857. qLink                     ds.l    1                ; offset: $0 (0)
  858. reserved1                 ds.l    1                ; offset: $4 (4)
  859. reserved2                 ds.l    1                ; offset: $8 (8)
  860. ioCompletion             ds.l    1                ; offset: $C (12)
  861. ioResult                 ds.w    1                ; offset: $10 (16)
  862. saveA5                     ds.l    1                ; offset: $12 (18)
  863. reqCode                     ds.w    1                ; offset: $16 (22)
  864. reserved                 ds.l    2                ; offset: $18 (24)
  865. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  866. dsRefNum                 ds.w    1                ; offset: $24 (36)
  867. callID                     ds.l    1                ; offset: $26 (38)
  868. identity                 ds.l    1                ; offset: $2A (42)
  869. gReserved1                 ds.l    1                ; offset: $2E (46)
  870. gReserved2                 ds.l    1                ; offset: $32 (50)
  871. gReserved3                 ds.l    1                ; offset: $36 (54)
  872. clientData                 ds.l    1                ; offset: $3A (58)
  873. userIdentity             ds.l    1                ; offset: $3E (62)        ;   --> identity of intermediary 
  874. recipient                 ds.l    1                ; offset: $42 (66)        ;   --> OCE name of recipient 
  875. sessionKey                 ds.l    1                ; offset: $46 (70)        ;  <--  session key 
  876. expiry                     ds.l    1                ; offset: $4A (74)        ;  <--> desired/actual expiry 
  877. credentialsLength         ds.l    1                ; offset: $4E (78)        ;  <--> max/actual credentials size 
  878. credentials                 ds.l    1                ; offset: $52 (82)        ;  <--> buffer where credentials are returned 
  879. proxyLength                 ds.l    1                ; offset: $56 (86)        ;   --> actual proxy size 
  880. proxy                     ds.l    1                ; offset: $5A (90)        ;   --> buffer containing proxy 
  881. principal                 ds.l    1                ; offset: $5E (94)        ;   --> RecordID of principal 
  882. sizeof                     EQU *                    ; size:   $62 (98)
  883.                         ENDR
  884. ;  API for Local Identity Interface 
  885. ;
  886. ;AuthGetLocalIdentityPB:
  887. ;A Collaborative application intended to work under the umbrella of LocalIdentity
  888. ;for the OCE toolbox will have to make this call to obtain LocalIdentity.
  889. ;If LocalIdentity has not been setup, then application will get
  890. ;'kOCEOCESetupRequired.'. In this case application should put the dialog
  891. ;recommended by the OCE Setup document and guide the user through OCE Setup.
  892. ;If the OCESetup contains local identity, but user has not unlocked, it will get
  893. ;kOCELocalAuthenticationFail. In this case application should use SDPPromptForLocalIdentity
  894. ;to prompt user for the password.
  895. ;If a backGround application or stand alone code requires LocalIdentity, if it gets the
  896. ;OSErr from LocalIdentity and can not call SDPPromptForLocalIdentity, it should it self
  897. ;register with the toolbox using kAuthAddToLocalIdentityQueue call. It will be notified
  898. ;when a LocalIdentity gets created by a foreground application.
  899. ;
  900. AuthGetLocalIdentityPB    RECORD 0
  901. qLink                     ds.l    1                ; offset: $0 (0)
  902. reserved1                 ds.l    1                ; offset: $4 (4)
  903. reserved2                 ds.l    1                ; offset: $8 (8)
  904. ioCompletion             ds.l    1                ; offset: $C (12)
  905. ioResult                 ds.w    1                ; offset: $10 (16)
  906. saveA5                     ds.l    1                ; offset: $12 (18)
  907. reqCode                     ds.w    1                ; offset: $16 (22)
  908. reserved                 ds.l    2                ; offset: $18 (24)
  909. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  910. dsRefNum                 ds.w    1                ; offset: $24 (36)
  911. callID                     ds.l    1                ; offset: $26 (38)
  912. identity                 ds.l    1                ; offset: $2A (42)
  913. gReserved1                 ds.l    1                ; offset: $2E (46)
  914. gReserved2                 ds.l    1                ; offset: $32 (50)
  915. gReserved3                 ds.l    1                ; offset: $36 (54)
  916. clientData                 ds.l    1                ; offset: $3A (58)
  917. theLocalIdentity         ds.l    1                ; offset: $3E (62)        ;  <--  LocalIdentity 
  918. sizeof                     EQU *                    ; size:   $42 (66)
  919.                         ENDR
  920. ;
  921. ;kAuthUnlockLocalIdentity:
  922. ;The LocalIdentity can be created using this call.
  923. ;The userName and password correspond to the LocalIdentity setup.
  924. ;If the password matches, then collabIdentity will be returned.
  925. ;Typically SDPPromptForLocalIdentity call will make this call.
  926. ;All applications which are registered through kAuthAddToLocalIdentityQueue
  927. ;will be notified.
  928. ;
  929. AuthUnlockLocalIdentityPB RECORD 0
  930. qLink                     ds.l    1                ; offset: $0 (0)
  931. reserved1                 ds.l    1                ; offset: $4 (4)
  932. reserved2                 ds.l    1                ; offset: $8 (8)
  933. ioCompletion             ds.l    1                ; offset: $C (12)
  934. ioResult                 ds.w    1                ; offset: $10 (16)
  935. saveA5                     ds.l    1                ; offset: $12 (18)
  936. reqCode                     ds.w    1                ; offset: $16 (22)
  937. reserved                 ds.l    2                ; offset: $18 (24)
  938. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  939. dsRefNum                 ds.w    1                ; offset: $24 (36)
  940. callID                     ds.l    1                ; offset: $26 (38)
  941. identity                 ds.l    1                ; offset: $2A (42)
  942. gReserved1                 ds.l    1                ; offset: $2E (46)
  943. gReserved2                 ds.l    1                ; offset: $32 (50)
  944. gReserved3                 ds.l    1                ; offset: $36 (54)
  945. clientData                 ds.l    1                ; offset: $3A (58)
  946. theLocalIdentity         ds.l    1                ; offset: $3E (62)        ;  <--  LocalIdentity 
  947. userName                 ds.l    1                ; offset: $42 (66)        ;   --> userName 
  948. password                 ds.l    1                ; offset: $46 (70)        ;   -->user password 
  949. sizeof                     EQU *                    ; size:   $4A (74)
  950.                         ENDR
  951. ;
  952. ;kAuthLockLocalIdentity:
  953. ;With this call existing LocalIdentity can be locked. If the ASDeleteLocalIdetity
  954. ;call fails with 'kOCEOperationDenied' error, name will contain the application which
  955. ;denied the operation. This name will be supplied by the application
  956. ;when it registered through kAuthAddToLocalIdentityQueue call
  957. ;
  958. AuthLockLocalIdentityPB    RECORD 0
  959. qLink                     ds.l    1                ; offset: $0 (0)
  960. reserved1                 ds.l    1                ; offset: $4 (4)
  961. reserved2                 ds.l    1                ; offset: $8 (8)
  962. ioCompletion             ds.l    1                ; offset: $C (12)
  963. ioResult                 ds.w    1                ; offset: $10 (16)
  964. saveA5                     ds.l    1                ; offset: $12 (18)
  965. reqCode                     ds.w    1                ; offset: $16 (22)
  966. reserved                 ds.l    2                ; offset: $18 (24)
  967. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  968. dsRefNum                 ds.w    1                ; offset: $24 (36)
  969. callID                     ds.l    1                ; offset: $26 (38)
  970. identity                 ds.l    1                ; offset: $2A (42)
  971. gReserved1                 ds.l    1                ; offset: $2E (46)
  972. gReserved2                 ds.l    1                ; offset: $32 (50)
  973. gReserved3                 ds.l    1                ; offset: $36 (54)
  974. clientData                 ds.l    1                ; offset: $3A (58)
  975. theLocalIdentity         ds.l    1                ; offset: $3E (62)        ;   --> LocalIdentity 
  976. name                     ds.l    1                ; offset: $42 (66)        ;  <--  name of the app which denied delete 
  977. sizeof                     EQU *                    ; size:   $46 (70)
  978.                         ENDR
  979. ; typedef NotificationUPP                 NotificationProc
  980.  
  981. ;
  982. ;kAuthAddToLocalIdentityQueue:
  983. ;An application requiring notification of locking/unlocking of the
  984. ;LocalIdentity can install itself using this call. The function provided
  985. ;in 'notifyProc' will be called whenever the requested event happens.
  986. ;When an AuthLockLocalIdentity call is made to the toolbox, the notificationProc
  987. ;will be called with 'kAuthLockPending'. The application may refuse the lock by returning
  988. ;a 'true' value. If all the registered entries return 'false' value, locking will be done
  989. ;successfully. Otherwise 'kOCEOperationDenied' error is returned to the caller. The appName
  990. ;(registered with the notificationProc) of the application which denied locking is also
  991. ;returned to the caller making the AuthLockIdentity call.
  992. ;
  993. AuthAddToLocalIdentityQueuePB RECORD 0
  994. qLink                     ds.l    1                ; offset: $0 (0)
  995. reserved1                 ds.l    1                ; offset: $4 (4)
  996. reserved2                 ds.l    1                ; offset: $8 (8)
  997. ioCompletion             ds.l    1                ; offset: $C (12)
  998. ioResult                 ds.w    1                ; offset: $10 (16)
  999. saveA5                     ds.l    1                ; offset: $12 (18)
  1000. reqCode                     ds.w    1                ; offset: $16 (22)
  1001. reserved                 ds.l    2                ; offset: $18 (24)
  1002. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1003. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1004. callID                     ds.l    1                ; offset: $26 (38)
  1005. identity                 ds.l    1                ; offset: $2A (42)
  1006. gReserved1                 ds.l    1                ; offset: $2E (46)
  1007. gReserved2                 ds.l    1                ; offset: $32 (50)
  1008. gReserved3                 ds.l    1                ; offset: $36 (54)
  1009. clientData                 ds.l    1                ; offset: $3A (58)
  1010. notifyProc                 ds.l    1                ; offset: $3E (62)        ;   --> notification procedure 
  1011. notifyFlags                 ds.l    1                ; offset: $42 (66)        ;   --> notifyFlags 
  1012. appName                     ds.l    1                ; offset: $46 (70)        ;   --> name of application to be returned in Delete/Stop 
  1013. sizeof                     EQU *                    ; size:   $4A (74)
  1014.                         ENDR
  1015. ; kAuthRemoveFromLocalIdentityQueue:
  1016. AuthRemoveFromLocalIdentityQueuePB RECORD 0
  1017. qLink                     ds.l    1                ; offset: $0 (0)
  1018. reserved1                 ds.l    1                ; offset: $4 (4)
  1019. reserved2                 ds.l    1                ; offset: $8 (8)
  1020. ioCompletion             ds.l    1                ; offset: $C (12)
  1021. ioResult                 ds.w    1                ; offset: $10 (16)
  1022. saveA5                     ds.l    1                ; offset: $12 (18)
  1023. reqCode                     ds.w    1                ; offset: $16 (22)
  1024. reserved                 ds.l    2                ; offset: $18 (24)
  1025. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1026. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1027. callID                     ds.l    1                ; offset: $26 (38)
  1028. identity                 ds.l    1                ; offset: $2A (42)
  1029. gReserved1                 ds.l    1                ; offset: $2E (46)
  1030. gReserved2                 ds.l    1                ; offset: $32 (50)
  1031. gReserved3                 ds.l    1                ; offset: $36 (54)
  1032. clientData                 ds.l    1                ; offset: $3A (58)
  1033. notifyProc                 ds.l    1                ; offset: $3E (62)        ;   --> notification procedure 
  1034. sizeof                     EQU *                    ; size:   $42 (66)
  1035.                         ENDR
  1036. ;
  1037. ;kAuthSetupLocalIdentity:
  1038. ;The LocalIdentity can be Setup using this call.
  1039. ;The userName and password correspond to the LocalIdentity setup.
  1040. ;If a LocalIdentity Setup already exists 'kOCELocalIdentitySetupExists' error
  1041. ;will be returned.
  1042. ;
  1043. AuthSetupLocalIdentityPB RECORD 0
  1044. qLink                     ds.l    1                ; offset: $0 (0)
  1045. reserved1                 ds.l    1                ; offset: $4 (4)
  1046. reserved2                 ds.l    1                ; offset: $8 (8)
  1047. ioCompletion             ds.l    1                ; offset: $C (12)
  1048. ioResult                 ds.w    1                ; offset: $10 (16)
  1049. saveA5                     ds.l    1                ; offset: $12 (18)
  1050. reqCode                     ds.w    1                ; offset: $16 (22)
  1051. reserved                 ds.l    2                ; offset: $18 (24)
  1052. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1053. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1054. callID                     ds.l    1                ; offset: $26 (38)
  1055. identity                 ds.l    1                ; offset: $2A (42)
  1056. gReserved1                 ds.l    1                ; offset: $2E (46)
  1057. gReserved2                 ds.l    1                ; offset: $32 (50)
  1058. gReserved3                 ds.l    1                ; offset: $36 (54)
  1059. clientData                 ds.l    1                ; offset: $3A (58)
  1060. aReserved                 ds.l    1                ; offset: $3E (62)        ;   --  
  1061. userName                 ds.l    1                ; offset: $42 (66)        ;   --> userName 
  1062. password                 ds.l    1                ; offset: $46 (70)        ;   -->user password 
  1063. sizeof                     EQU *                    ; size:   $4A (74)
  1064.                         ENDR
  1065. ;
  1066. ;kAuthChangeLocalIdentity:
  1067. ;An existing LocalIdentity  Setup can be changed using this call.
  1068. ;The userName and password correspond to the LocalIdentity setup.
  1069. ;If a LocalIdentity Setup does not exists 'kOCEOCESetupRequired' error
  1070. ;will be returned. The user can use  kAuthSetupLocalIdentity call to setit up.
  1071. ;If the 'password' does not correspond to the existing setup, 'kOCELocalAuthenticationFail'
  1072. ;OSErr will be returned. If successful, LocalID will have new name as 'userName' and
  1073. ;password as 'newPassword' and if any applications has installed into 
  1074. ;LocalIdentityQueue with kNotifyNameChangeMask set, it will be notified with 
  1075. ;kAuthLocalIdentityNameChangeOp action value. 
  1076. ;
  1077. ;
  1078. AuthChangeLocalIdentityPB RECORD 0
  1079. qLink                     ds.l    1                ; offset: $0 (0)
  1080. reserved1                 ds.l    1                ; offset: $4 (4)
  1081. reserved2                 ds.l    1                ; offset: $8 (8)
  1082. ioCompletion             ds.l    1                ; offset: $C (12)
  1083. ioResult                 ds.w    1                ; offset: $10 (16)
  1084. saveA5                     ds.l    1                ; offset: $12 (18)
  1085. reqCode                     ds.w    1                ; offset: $16 (22)
  1086. reserved                 ds.l    2                ; offset: $18 (24)
  1087. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1088. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1089. callID                     ds.l    1                ; offset: $26 (38)
  1090. identity                 ds.l    1                ; offset: $2A (42)
  1091. gReserved1                 ds.l    1                ; offset: $2E (46)
  1092. gReserved2                 ds.l    1                ; offset: $32 (50)
  1093. gReserved3                 ds.l    1                ; offset: $36 (54)
  1094. clientData                 ds.l    1                ; offset: $3A (58)
  1095. aReserved                 ds.l    1                ; offset: $3E (62)        ;   --  
  1096. userName                 ds.l    1                ; offset: $42 (66)        ;   --> userName 
  1097. password                 ds.l    1                ; offset: $46 (70)        ;   --> current password 
  1098. newPassword                 ds.l    1                ; offset: $4A (74)        ;   --> new password 
  1099. sizeof                     EQU *                    ; size:   $4E (78)
  1100.                         ENDR
  1101. ;
  1102. ;kAuthRemoveLocalIdentity:
  1103. ;An existing LocalIdentity  Setup can be removed using this call.
  1104. ;The userName and password correspond to the LocalIdentity setup.
  1105. ;If a LocalIdentity Setup does not exists 'kOCEOCESetupRequired' error
  1106. ;will be returned.
  1107. ;If the 'password' does not correspond to the existing setup, 'kOCELocalAuthenticationFail'
  1108. ;OSErr will be returned. If successful, LocalIdentity will be removed from the OCE Setup.
  1109. ;This is a very distructive operation, user must be warned enough before actually making
  1110. ;this call.
  1111. ;
  1112. AuthRemoveLocalIdentityPB RECORD 0
  1113. qLink                     ds.l    1                ; offset: $0 (0)
  1114. reserved1                 ds.l    1                ; offset: $4 (4)
  1115. reserved2                 ds.l    1                ; offset: $8 (8)
  1116. ioCompletion             ds.l    1                ; offset: $C (12)
  1117. ioResult                 ds.w    1                ; offset: $10 (16)
  1118. saveA5                     ds.l    1                ; offset: $12 (18)
  1119. reqCode                     ds.w    1                ; offset: $16 (22)
  1120. reserved                 ds.l    2                ; offset: $18 (24)
  1121. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1122. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1123. callID                     ds.l    1                ; offset: $26 (38)
  1124. identity                 ds.l    1                ; offset: $2A (42)
  1125. gReserved1                 ds.l    1                ; offset: $2E (46)
  1126. gReserved2                 ds.l    1                ; offset: $32 (50)
  1127. gReserved3                 ds.l    1                ; offset: $36 (54)
  1128. clientData                 ds.l    1                ; offset: $3A (58)
  1129. aReserved                 ds.l    1                ; offset: $3E (62)        ;   --  
  1130. userName                 ds.l    1                ; offset: $42 (66)        ;   --> userName 
  1131. password                 ds.l    1                ; offset: $46 (70)        ;   --> current password 
  1132. sizeof                     EQU *                    ; size:   $4A (74)
  1133.                         ENDR
  1134. ;
  1135. ;kOCESetupAddDirectoryInfo:
  1136. ;Using this call identity for a catalog can be setup under LocalIdentity umbrella.
  1137. ;ASCreateLocalIdentity should have been done succesfully before making this call.    
  1138. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1139. ;DirAddDSAMDirectory call was made.
  1140. ;rid-> is the recordID in which the identity for the catalog will be established.
  1141. ;password-> the password associated with the rid in the catalog world.
  1142. ;
  1143. OCESetupAddDirectoryInfoPB RECORD 0
  1144. qLink                     ds.l    1                ; offset: $0 (0)
  1145. reserved1                 ds.l    1                ; offset: $4 (4)
  1146. reserved2                 ds.l    1                ; offset: $8 (8)
  1147. ioCompletion             ds.l    1                ; offset: $C (12)
  1148. ioResult                 ds.w    1                ; offset: $10 (16)
  1149. saveA5                     ds.l    1                ; offset: $12 (18)
  1150. reqCode                     ds.w    1                ; offset: $16 (22)
  1151. reserved                 ds.l    2                ; offset: $18 (24)
  1152. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1153. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1154. callID                     ds.l    1                ; offset: $26 (38)
  1155. identity                 ds.l    1                ; offset: $2A (42)
  1156. gReserved1                 ds.l    1                ; offset: $2E (46)
  1157. gReserved2                 ds.l    1                ; offset: $32 (50)
  1158. gReserved3                 ds.l    1                ; offset: $36 (54)
  1159. clientData                 ds.l    1                ; offset: $3A (58)
  1160. directoryRecordCID         ds        CreationID        ; offset: $3E (62)        ;   --> CreationID for the catalog 
  1161. recordID                 ds.l    1                ; offset: $46 (70)        ;   --> recordID for the identity 
  1162. password                 ds.l    1                ; offset: $4A (74)        ;   --> password in the catalog world 
  1163. sizeof                     EQU *                    ; size:   $4E (78)
  1164.                         ENDR
  1165. ;
  1166. ;kOCESetupChangeDirectoryInfo:
  1167. ;Using this call an existing identity for a catalog under LocalIdentity umbrella
  1168. ;can be changed.
  1169. ;ASCreateLocalIdentity should have been done succesfully before making this call.
  1170. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1171. ;DirAddDSAMDirectory call was made.
  1172. ;rid-> is the recordID in which the identity for the catalog will be established.
  1173. ;password-> the password associated with the rid in the catalog world.
  1174. ;newPassword -> the new password for the catalog
  1175. ;
  1176. OCESetupChangeDirectoryInfoPB RECORD 0
  1177. qLink                     ds.l    1                ; offset: $0 (0)
  1178. reserved1                 ds.l    1                ; offset: $4 (4)
  1179. reserved2                 ds.l    1                ; offset: $8 (8)
  1180. ioCompletion             ds.l    1                ; offset: $C (12)
  1181. ioResult                 ds.w    1                ; offset: $10 (16)
  1182. saveA5                     ds.l    1                ; offset: $12 (18)
  1183. reqCode                     ds.w    1                ; offset: $16 (22)
  1184. reserved                 ds.l    2                ; offset: $18 (24)
  1185. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1186. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1187. callID                     ds.l    1                ; offset: $26 (38)
  1188. identity                 ds.l    1                ; offset: $2A (42)
  1189. gReserved1                 ds.l    1                ; offset: $2E (46)
  1190. gReserved2                 ds.l    1                ; offset: $32 (50)
  1191. gReserved3                 ds.l    1                ; offset: $36 (54)
  1192. clientData                 ds.l    1                ; offset: $3A (58)
  1193. directoryRecordCID         ds        CreationID        ; offset: $3E (62)        ;   --> CreationID for the catalog 
  1194. recordID                 ds.l    1                ; offset: $46 (70)        ;   --> recordID for the identity 
  1195. password                 ds.l    1                ; offset: $4A (74)        ;   --> password in the catalog world 
  1196. newPassword                 ds.l    1                ; offset: $4E (78)        ;   --> new password in the catalog 
  1197. sizeof                     EQU *                    ; size:   $52 (82)
  1198.                         ENDR
  1199. ;
  1200. ;kOCESetupRemoveDirectoryInfo:
  1201. ;Using this call an existing identity for a catalog under LocalIdentity umbrella
  1202. ;can be changed.
  1203. ;ASCreateLocalIdentity should have been done succesfully before making this call.
  1204. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1205. ;
  1206. OCESetupRemoveDirectoryInfoPB RECORD 0
  1207. qLink                     ds.l    1                ; offset: $0 (0)
  1208. reserved1                 ds.l    1                ; offset: $4 (4)
  1209. reserved2                 ds.l    1                ; offset: $8 (8)
  1210. ioCompletion             ds.l    1                ; offset: $C (12)
  1211. ioResult                 ds.w    1                ; offset: $10 (16)
  1212. saveA5                     ds.l    1                ; offset: $12 (18)
  1213. reqCode                     ds.w    1                ; offset: $16 (22)
  1214. reserved                 ds.l    2                ; offset: $18 (24)
  1215. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1216. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1217. callID                     ds.l    1                ; offset: $26 (38)
  1218. identity                 ds.l    1                ; offset: $2A (42)
  1219. gReserved1                 ds.l    1                ; offset: $2E (46)
  1220. gReserved2                 ds.l    1                ; offset: $32 (50)
  1221. gReserved3                 ds.l    1                ; offset: $36 (54)
  1222. clientData                 ds.l    1                ; offset: $3A (58)
  1223. directoryRecordCID         ds        CreationID        ; offset: $3E (62)        ;   --> CreationID for the catalog 
  1224. sizeof                     EQU *                    ; size:   $46 (70)
  1225.                         ENDR
  1226. ;
  1227. ;kOCESetupGetDirectoryInfo:
  1228. ;Using this call info on an existing identity for a particular catalog under LocalIdentity umbrella
  1229. ;can be obtained.
  1230. ;For the specified catalog 'directoryName' and 'discriminator', rid and nativeName will
  1231. ;returned. Caller must provide appropriate buffer to get back rid and nativeName.
  1232. ;'password' will be returned  for  non-ADAP Catalogs.
  1233. ;
  1234. OCESetupGetDirectoryInfoPB RECORD 0
  1235. qLink                     ds.l    1                ; offset: $0 (0)
  1236. reserved1                 ds.l    1                ; offset: $4 (4)
  1237. reserved2                 ds.l    1                ; offset: $8 (8)
  1238. ioCompletion             ds.l    1                ; offset: $C (12)
  1239. ioResult                 ds.w    1                ; offset: $10 (16)
  1240. saveA5                     ds.l    1                ; offset: $12 (18)
  1241. reqCode                     ds.w    1                ; offset: $16 (22)
  1242. reserved                 ds.l    2                ; offset: $18 (24)
  1243. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1244. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1245. callID                     ds.l    1                ; offset: $26 (38)
  1246. identity                 ds.l    1                ; offset: $2A (42)
  1247. gReserved1                 ds.l    1                ; offset: $2E (46)
  1248. gReserved2                 ds.l    1                ; offset: $32 (50)
  1249. gReserved3                 ds.l    1                ; offset: $36 (54)
  1250. clientData                 ds.l    1                ; offset: $3A (58)
  1251. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  1252. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminator for the catalog 
  1253. recordID                 ds.l    1                ; offset: $4A (74)        ;  <--  rid for the catalog identity 
  1254. nativeName                 ds.l    1                ; offset: $4E (78)        ;  <--  user name in the catalog world 
  1255. password                 ds.l    1                ; offset: $52 (82)        ;  <--  password in the catalog world 
  1256. sizeof                     EQU *                    ; size:   $56 (86)
  1257.                         ENDR
  1258. ;
  1259. ;****************************************************************************
  1260. ;
  1261. ;
  1262. ;         Catalog Manager operations
  1263. ;
  1264. ;
  1265. ;****************************************************************************
  1266. ;
  1267.  
  1268.  
  1269. ; typedef DirParamBlock *                DirParamBlockPtr
  1270.  
  1271. ;  AddRecord 
  1272. DirAddRecordPB            RECORD 0
  1273. qLink                     ds.l    1                ; offset: $0 (0)
  1274. reserved1                 ds.l    1                ; offset: $4 (4)
  1275. reserved2                 ds.l    1                ; offset: $8 (8)
  1276. ioCompletion             ds.l    1                ; offset: $C (12)
  1277. ioResult                 ds.w    1                ; offset: $10 (16)
  1278. saveA5                     ds.l    1                ; offset: $12 (18)
  1279. reqCode                     ds.w    1                ; offset: $16 (22)
  1280. reserved                 ds.l    2                ; offset: $18 (24)
  1281. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1282. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1283. callID                     ds.l    1                ; offset: $26 (38)
  1284. identity                 ds.l    1                ; offset: $2A (42)
  1285. gReserved1                 ds.l    1                ; offset: $2E (46)
  1286. gReserved2                 ds.l    1                ; offset: $32 (50)
  1287. gReserved3                 ds.l    1                ; offset: $36 (54)
  1288. clientData                 ds.l    1                ; offset: $3A (58)
  1289. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> CreationID returned here 
  1290. allowDuplicate             ds.b    1                ; offset: $42 (66)        ;   --> 
  1291. filler1                     ds.b    1                ; offset: $43 (67)
  1292. sizeof                     EQU *                    ; size:   $44 (68)
  1293.                         ENDR
  1294. ;  DeleteRecord 
  1295. DirDeleteRecordPB        RECORD 0
  1296. qLink                     ds.l    1                ; offset: $0 (0)
  1297. reserved1                 ds.l    1                ; offset: $4 (4)
  1298. reserved2                 ds.l    1                ; offset: $8 (8)
  1299. ioCompletion             ds.l    1                ; offset: $C (12)
  1300. ioResult                 ds.w    1                ; offset: $10 (16)
  1301. saveA5                     ds.l    1                ; offset: $12 (18)
  1302. reqCode                     ds.w    1                ; offset: $16 (22)
  1303. reserved                 ds.l    2                ; offset: $18 (24)
  1304. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1305. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1306. callID                     ds.l    1                ; offset: $26 (38)
  1307. identity                 ds.l    1                ; offset: $2A (42)
  1308. gReserved1                 ds.l    1                ; offset: $2E (46)
  1309. gReserved2                 ds.l    1                ; offset: $32 (50)
  1310. gReserved3                 ds.l    1                ; offset: $36 (54)
  1311. clientData                 ds.l    1                ; offset: $3A (58)
  1312. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1313. sizeof                     EQU *                    ; size:   $42 (66)
  1314.                         ENDR
  1315. ;  aRecord must contain valid PackedRLI and a CreationID. 
  1316. ; ********************************************************************************
  1317. ;
  1318. ;DirEnumerate:
  1319. ;This call can be used to enumerate both DNodes and records under a specified
  1320. ;DNode. A DNode is specified by the PackedRLIPtr 'aRLI'.
  1321. ;
  1322. ;startingPoint indicates where to start the enumeration.  Initially,
  1323. ;it should be set to a value of nil.  After some records are enumerated,
  1324. ;the client can issue the call again with the same aRLI and recordName and
  1325. ;typeList. The last received DirEnumSpec in the startingPoint field.  The server
  1326. ;will continue the enumeration from that record on. if user wants to get back the
  1327. ;value specified in the startingRecord also, the Boolean 'includeStartingPoint'
  1328. ;must be set to 'true'. If this is set to 'false', records specified after the
  1329. ;startingPoint record will be returned.
  1330. ;
  1331. ;sortBy indicates to the server to return the records that match in name-first
  1332. ;or type-first order.  sortDirection indicates to the server to search in forward
  1333. ;or backward sort order for RecordIDs Specified.
  1334. ;
  1335. ;RecordIDS and Enumeration Criteria:
  1336. ;
  1337. ;PackedRLIPtr parameter 'aRLI' will be accepted for DNode
  1338. ;specification.
  1339. ;
  1340. ;One RStringPtr 'nameMatchString' is provided. User is allowed to
  1341. ;specify a wild card in the name. WildCard specification is specified in 
  1342. ;matchNameHow parameter and possible values are defined in DirMatchWith Enum.
  1343. ;
  1344. ;'typeCount' parameter indicate how many types are in the 'typeList'.
  1345. ;
  1346. ;'typeList' parmeter is a pointer to an RString array of size 'typeCount'.
  1347. ;
  1348. ;If 'typeCount' is exactly equal to one, a wild card can be specified
  1349. ;for the entity type; otherwise types have to be completely specified.
  1350. ;WildCard specification is specified in  matchNameHow parameter
  1351. ; and possible values are defined in DirMatchWith Enum.
  1352. ;
  1353. ;
  1354. ;A nil value for 'startingPoint' is allowed when sortDirection specified
  1355. ;is 'kSortBackwards'. This was not allowed previously.
  1356. ;
  1357. ;'enumFlags' parameter is a bit field. The following bits can be set:
  1358. ;    kEnumDistinguishedNameMask to get back records in the cluster data base.
  1359. ;    kEnumAliasMask to get back record aliases
  1360. ;    kEnumPseudonymMask to get back record pseudonyms
  1361. ;    kEnumDNodeMask to get back any children dNodes for the DNode specified in the
  1362. ;    'aRLI' parameter.
  1363. ;    kEnumForeignDNodeMask to get back any children dNodes which have ForeignDnodes in the
  1364. ;    dNode specified in the 'aRLI' parameter.
  1365. ;
  1366. ;    kEnumAll is combination of all five values and can be used to enumerate
  1367. ;    everything under a specified DNode.
  1368. ;
  1369. ;
  1370. ;
  1371. ;The results returned for each element will consist of a DirEnumSpec.
  1372. ;The DirEnumSpec contains 'enumFlag' which indicates the type of entity and a
  1373. ;union which will have either DNodeID or LocalRecordID depending on the value of 'enumFlag'.
  1374. ;The 'enumFlag'  will indicate whether the returned element is a
  1375. ;record(kEnumDistinguishedNameMask bit) or a alias(kEnumAliasMask bit) or a
  1376. ;Pseudonym(kEnumPseudonymMask) or a child DNode(kEnumDNodeMask bit).  If the 'enumFlag' value
  1377. ;is kEnumDnodeMask, it indicates the value returned in the union is a DNodeID (i.e. 'dNodeNumber'
  1378. ;is the 'dNodeNumber' of the child dnode(if the catalog supports dNodeNumbers, otherwise
  1379. ;this will be set to zero). The name will be the child dnode name. For other values of the
  1380. ;'enumFlag', the value in the union will be LocalRecordID. In addition to kEnumDnodeMask it is
  1381. ;possible that kEnumForeignDNodeMask is also set. This is an advisory bit and application must make
  1382. ;it's own decision before displaying these records. If catalog supports kSupportIndexRatioMask, it
  1383. ;may also return the relative position of the record (percentile of total records) in the 
  1384. ;indexRatio field in EnumSpec.
  1385. ;
  1386. ;
  1387. ;responseSLRV will contain the script, language, region and version of the oce sorting software.
  1388. ;The results will be collected in the 'getBuffer' supplied by the user.
  1389. ;If buffer can not hold all the data returned 'kOCEMoreData' error will be returned.
  1390. ;
  1391. ;If user receives 'noErr' or 'kOCEMoreData', buffer will contain valid results. A user
  1392. ;can extract the results in the 'getBuffer' by making DirEnumerateParse' call.
  1393. ;
  1394. DirEnumerateGetPB        RECORD 0
  1395. qLink                     ds.l    1                ; offset: $0 (0)
  1396. reserved1                 ds.l    1                ; offset: $4 (4)
  1397. reserved2                 ds.l    1                ; offset: $8 (8)
  1398. ioCompletion             ds.l    1                ; offset: $C (12)
  1399. ioResult                 ds.w    1                ; offset: $10 (16)
  1400. saveA5                     ds.l    1                ; offset: $12 (18)
  1401. reqCode                     ds.w    1                ; offset: $16 (22)
  1402. reserved                 ds.l    2                ; offset: $18 (24)
  1403. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1404. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1405. callID                     ds.l    1                ; offset: $26 (38)
  1406. identity                 ds.l    1                ; offset: $2A (42)
  1407. gReserved1                 ds.l    1                ; offset: $2E (46)
  1408. gReserved2                 ds.l    1                ; offset: $32 (50)
  1409. gReserved3                 ds.l    1                ; offset: $36 (54)
  1410. clientData                 ds.l    1                ; offset: $3A (58)
  1411. aRLI                     ds.l    1                ; offset: $3E (62)        ;   --> an RLI specifying the cluster to be enumerated 
  1412. startingPoint             ds.l    1                ; offset: $42 (66)        ;   --> 
  1413. sortBy                     ds.w    1                ; offset: $46 (70)        ;   --> 
  1414. sortDirection             ds.w    1                ; offset: $48 (72)        ;   --> 
  1415. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  1416. nameMatchString             ds.l    1                ; offset: $4E (78)        ;   --> name from which enumeration should start 
  1417. typesList                 ds.l    1                ; offset: $52 (82)        ;   --> list of entity types to be enumerated 
  1418. typeCount                 ds.l    1                ; offset: $56 (86)        ;   --> number of types in the list 
  1419. enumFlags                 ds.l    1                ; offset: $5A (90)        ;   --> indicates what to enumerate 
  1420. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the record specified in starting point 
  1421. padByte                     ds.b    1                ; offset: $5F (95)
  1422. matchNameHow             ds.b    1                ; offset: $60 (96)        ;   --> Matching Criteria for nameMatchString 
  1423. matchTypeHow             ds.b    1                ; offset: $61 (97)        ;   --> Matching Criteria for typeList 
  1424. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  1425. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  1426. responseSLRV             ds        SLRV            ; offset: $6A (106)        ;   <--  response SLRV 
  1427. sizeof                     EQU *                    ; size:   $72 (114)
  1428.                         ENDR
  1429. ;  The EnumerateRecords call-back function is defined as follows: 
  1430. ; typedef ForEachDirEnumSpecUPP         ForEachDirEnumSpec
  1431.  
  1432. ;
  1433. ;EnumerateParse:
  1434. ;After an EnumerateGet call has completed, call EnumerateParse
  1435. ;to parse through the buffer that was filled in EnumerateGet.
  1436. ;
  1437. ;'eachEnumSpec' will be called each time to return to the client a
  1438. ;DirEnumSpec that matches the pattern for enumeration. 'enumFlag' indicates the type
  1439. ;of information returned in the DirEnumSpec
  1440. ;The clientData parameter that you pass in the parameter block will be passed
  1441. ;to 'forEachEnumDSSpecFunc'.  You are free to put anything in clientData - it is intended
  1442. ;to allow you some way to match the call-back to the original call (for
  1443. ;example, you make more then one aysynchronous EnumerateGet calls and you want to
  1444. ;associate returned results in some way).
  1445. ;
  1446. ;The client should return FALSE from 'eachEnumSpec' to continue
  1447. ;processing of the EnumerateParse request.  Returning TRUE will
  1448. ;terminate the EnumerateParse request.
  1449. ;
  1450. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1451. ;of execution as the thread that made the EnumerateParse call.  That means that the
  1452. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  1453. ;that were in effect when the call was made.  Because of this, the call-back
  1454. ;routine has the same restrictions as the caller of EnumerateParse:
  1455. ;if EnumerateParse was not called from interrupt level, then the call-
  1456. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  1457. ;like a ioCompletion except that A5 will be preserved for the application.
  1458. ;
  1459. DirEnumerateParsePB        RECORD 0
  1460. qLink                     ds.l    1                ; offset: $0 (0)
  1461. reserved1                 ds.l    1                ; offset: $4 (4)
  1462. reserved2                 ds.l    1                ; offset: $8 (8)
  1463. ioCompletion             ds.l    1                ; offset: $C (12)
  1464. ioResult                 ds.w    1                ; offset: $10 (16)
  1465. saveA5                     ds.l    1                ; offset: $12 (18)
  1466. reqCode                     ds.w    1                ; offset: $16 (22)
  1467. reserved                 ds.l    2                ; offset: $18 (24)
  1468. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1469. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1470. callID                     ds.l    1                ; offset: $26 (38)
  1471. identity                 ds.l    1                ; offset: $2A (42)
  1472. gReserved1                 ds.l    1                ; offset: $2E (46)
  1473. gReserved2                 ds.l    1                ; offset: $32 (50)
  1474. gReserved3                 ds.l    1                ; offset: $36 (54)
  1475. clientData                 ds.l    1                ; offset: $3A (58)
  1476. aRLI                     ds.l    1                ; offset: $3E (62)        ;   --> an RLI specifying the cluster to be enumerated 
  1477. bReserved                 ds.l    1                ; offset: $42 (66)        ;   --  
  1478. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  1479. eachEnumSpec             ds.l    1                ; offset: $4A (74)        ;   --> 
  1480. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  1481. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  1482. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  1483. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  1484. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  1485. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  1486. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  1487. l1Reserved                 ds.w    1                ; offset: $6A (106)        ;   -- 
  1488. l2Reserved                 ds.w    1                ; offset: $6C (108)        ;   --  
  1489. l3Reserved                 ds.w    1                ; offset: $6E (110)        ;   -- 
  1490. l4Reserved                 ds.w    1                ; offset: $70 (112)        ;   --  
  1491. sizeof                     EQU *                    ; size:   $72 (114)
  1492.                         ENDR
  1493. ;
  1494. ; * FindRecordGet operates similarly to DirEnumerate except it returns a list
  1495. ; * of records instead of records local to a cluster.
  1496. ;
  1497. DirFindRecordGetPB        RECORD 0
  1498. qLink                     ds.l    1                ; offset: $0 (0)
  1499. reserved1                 ds.l    1                ; offset: $4 (4)
  1500. reserved2                 ds.l    1                ; offset: $8 (8)
  1501. ioCompletion             ds.l    1                ; offset: $C (12)
  1502. ioResult                 ds.w    1                ; offset: $10 (16)
  1503. saveA5                     ds.l    1                ; offset: $12 (18)
  1504. reqCode                     ds.w    1                ; offset: $16 (22)
  1505. reserved                 ds.l    2                ; offset: $18 (24)
  1506. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1507. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1508. callID                     ds.l    1                ; offset: $26 (38)
  1509. identity                 ds.l    1                ; offset: $2A (42)
  1510. gReserved1                 ds.l    1                ; offset: $2E (46)
  1511. gReserved2                 ds.l    1                ; offset: $32 (50)
  1512. gReserved3                 ds.l    1                ; offset: $36 (54)
  1513. clientData                 ds.l    1                ; offset: $3A (58)
  1514. startingPoint             ds.l    1                ; offset: $3E (62)
  1515. reservedA                 ds.l    2                ; offset: $42 (66)
  1516. nameMatchString             ds.l    1                ; offset: $4A (74)
  1517. typesList                 ds.l    1                ; offset: $4E (78)
  1518. typeCount                 ds.l    1                ; offset: $52 (82)
  1519. reservedB                 ds.l    1                ; offset: $56 (86)
  1520. reservedC                 ds.w    1                ; offset: $5A (90)
  1521. matchNameHow             ds.b    1                ; offset: $5C (92)
  1522. matchTypeHow             ds.b    1                ; offset: $5D (93)
  1523. getBuffer                 ds.l    1                ; offset: $5E (94)
  1524. getBufferSize             ds.l    1                ; offset: $62 (98)
  1525. directoryName             ds.l    1                ; offset: $66 (102)
  1526. discriminator             ds        DirDiscriminator ; offset: $6A (106)
  1527. sizeof                     EQU *                    ; size:   $72 (114)
  1528.                         ENDR
  1529. ;  The FindRecordParse call-back function is defined as follows: 
  1530. ; typedef ForEachRecordUPP                 ForEachRecord
  1531.  
  1532. ;
  1533. ; * This PB same as DirFindRecordGet except it includes the callback function
  1534. ;
  1535. DirFindRecordParsePB    RECORD 0
  1536. qLink                     ds.l    1                ; offset: $0 (0)
  1537. reserved1                 ds.l    1                ; offset: $4 (4)
  1538. reserved2                 ds.l    1                ; offset: $8 (8)
  1539. ioCompletion             ds.l    1                ; offset: $C (12)
  1540. ioResult                 ds.w    1                ; offset: $10 (16)
  1541. saveA5                     ds.l    1                ; offset: $12 (18)
  1542. reqCode                     ds.w    1                ; offset: $16 (22)
  1543. reserved                 ds.l    2                ; offset: $18 (24)
  1544. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1545. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1546. callID                     ds.l    1                ; offset: $26 (38)
  1547. identity                 ds.l    1                ; offset: $2A (42)
  1548. gReserved1                 ds.l    1                ; offset: $2E (46)
  1549. gReserved2                 ds.l    1                ; offset: $32 (50)
  1550. gReserved3                 ds.l    1                ; offset: $36 (54)
  1551. clientData                 ds.l    1                ; offset: $3A (58)
  1552. startingPoint             ds.l    1                ; offset: $3E (62)
  1553. reservedA                 ds.l    2                ; offset: $42 (66)
  1554. nameMatchString             ds.l    1                ; offset: $4A (74)
  1555. typesList                 ds.l    1                ; offset: $4E (78)
  1556. typeCount                 ds.l    1                ; offset: $52 (82)
  1557. reservedB                 ds.l    1                ; offset: $56 (86)
  1558. reservedC                 ds.w    1                ; offset: $5A (90)
  1559. matchNameHow             ds.b    1                ; offset: $5C (92)
  1560. matchTypeHow             ds.b    1                ; offset: $5D (93)
  1561. getBuffer                 ds.l    1                ; offset: $5E (94)
  1562. getBufferSize             ds.l    1                ; offset: $62 (98)
  1563. directoryName             ds.l    1                ; offset: $66 (102)
  1564. discriminator             ds        DirDiscriminator ; offset: $6A (106)
  1565. forEachRecordFunc         ds.l    1                ; offset: $72 (114)
  1566. sizeof                     EQU *                    ; size:   $76 (118)
  1567.                         ENDR
  1568. ;
  1569. ;LookupGet:
  1570. ;
  1571. ;aRecordList is an array of pointers to RecordIDs, each of which must
  1572. ;contain valid PackedRLI and a CreationID.  recordIDCount is
  1573. ;the size of this array.
  1574. ;
  1575. ;attrTypeList is an array of pointers to AttributeTypes.  attrTypeCount is
  1576. ;the size of this array.
  1577. ;
  1578. ;staringRecordIndex is the record from which to continue the lookup.
  1579. ;If you want to start from first record in the list, this must be 1 (not zero).
  1580. ;This value must always be <= recordIDCount.
  1581. ;
  1582. ;startingAttributeIndex is the AttributeType from which we want to continue the lookup.
  1583. ;If you want to start from first attribute in the list, this must be 1 (not zero).
  1584. ;This value must always be <= attrTypeCount.
  1585. ;
  1586. ;startingAttribute is the value of the attribute value from which we want to
  1587. ;continue lookup. In case of catalogs supporting creationIDs, startingAttribute
  1588. ;may contain only a CID. Other catalogs may require the entire value.
  1589. ;If a non-null cid is given and if an attribute value with that cid is not found, this
  1590. ;call will terminate with kOCENoSuchAttribute error. A client should not make a LookupParse call
  1591. ;after getting this error.
  1592. ;
  1593. ;'includeStartingPoint' boolean can be set to 'true' to receive the value specified in the
  1594. ;startingPoint in the results returned. If this is set to 'false', the value
  1595. ;specified in the startingAttribute will not be returned.
  1596. ;
  1597. ;When LookupGet call fails with kOCEMoreData, the client will be able to find out where the call ended
  1598. ;with a subsequent LookupParse call. When the LookupParse call completes with kOCEMoreData,
  1599. ;lastRecordIndex, lastAttributeIndex and lastValueCID will point to the corresponding
  1600. ;recordID, attributeType and the CreationID of the last value returned successfully. These parameters
  1601. ;are exactly the same ones for the startingRecordIndex, startingAttributeIndex, and startingAttrValueCID
  1602. ;so they can be used in a subsequent LookupGet call to continue the lookup.
  1603. ;
  1604. ;In an extreme case, It is possible that we had an attribute value that is too large to fit
  1605. ;in the client's buffer. In such cases, if it was the only thing that we tried to fit
  1606. ;into the buffer, the client will not able to proceed further because he will not know the
  1607. ;attributeCID of the attribute to continue with.  Also he does not know how big a buffer
  1608. ;would be needed for the next call to get this 'mondo' attribute value successfully.
  1609. ;
  1610. ;to support this, LookupParse call will do the following:
  1611. ;
  1612. ;If LookupGet has failed with kOCEMoreData error, LookupParse will check to make sure that
  1613. ;ForEachAttributeValueFunc has been called at least once. If so, the client has the option
  1614. ;to continue from that attribute CreationID (for PAB/ADAP) in the next LookupGet call.
  1615. ;However, if it was not even called once, then the attribute value may be too big to fit in the
  1616. ;user's buffer. In this case, lastAttrValueCID (lastAttribute) and attrSize are returned in the
  1617. ;parse buffer and the call will fail with kOCEMoreAttrValue. However, it is possible that
  1618. ;ForEachAttributeValue was not called because the user does not have read access to some of
  1619. ;the attributeTypes in the list, and the buffer was full before even reading the creationID of
  1620. ;any of the attribute values.  A kOCEMoreData error is returned.
  1621. ;
  1622. ;The Toolbox will check for duplicate RecordIDs in the aRecordList. If found, it will return
  1623. ;'daDuplicateRecordIDErr'.
  1624. ;
  1625. ;The Toolbox will check for duplicate AttributeTypes in the attrTypeList. If found it will
  1626. ;return 'daDuplicateAttrTypeErr'.
  1627. ;
  1628. DirLookupGetPB            RECORD 0
  1629. qLink                     ds.l    1                ; offset: $0 (0)
  1630. reserved1                 ds.l    1                ; offset: $4 (4)
  1631. reserved2                 ds.l    1                ; offset: $8 (8)
  1632. ioCompletion             ds.l    1                ; offset: $C (12)
  1633. ioResult                 ds.w    1                ; offset: $10 (16)
  1634. saveA5                     ds.l    1                ; offset: $12 (18)
  1635. reqCode                     ds.w    1                ; offset: $16 (22)
  1636. reserved                 ds.l    2                ; offset: $18 (24)
  1637. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1638. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1639. callID                     ds.l    1                ; offset: $26 (38)
  1640. identity                 ds.l    1                ; offset: $2A (42)
  1641. gReserved1                 ds.l    1                ; offset: $2E (46)
  1642. gReserved2                 ds.l    1                ; offset: $32 (50)
  1643. gReserved3                 ds.l    1                ; offset: $36 (54)
  1644. clientData                 ds.l    1                ; offset: $3A (58)
  1645. aRecordList                 ds.l    1                ; offset: $3E (62)        ;   --> an array of RecordID pointers 
  1646. attrTypeList             ds.l    1                ; offset: $42 (66)        ;   --> an array of attribute types 
  1647. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  1648. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  1649. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  1650. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  1651. recordIDCount             ds.l    1                ; offset: $56 (86)        ;   --> 
  1652. attrTypeCount             ds.l    1                ; offset: $5A (90)        ;   --> 
  1653. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the value specified by the starting indices 
  1654. padByte                     ds.b    1                ; offset: $5F (95)
  1655. i1Reserved                 ds.w    1                ; offset: $60 (96)        ;   --  
  1656. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  1657. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  1658. startingRecordIndex         ds.l    1                ; offset: $6A (106)        ;   --> start from this record 
  1659. startingAttrTypeIndex     ds.l    1                ; offset: $6E (110)        ;   --> start from this attribute type 
  1660. startingAttribute         ds        Attribute        ; offset: $72 (114)        ;   --> start from this attribute value 
  1661. pReserved                 ds.l    1                ; offset: $AA (170)        ;   --  
  1662. sizeof                     EQU *                    ; size:   $AE (174)
  1663.                         ENDR
  1664. ;  The Lookup call-back functions are defined as follows: 
  1665. ; typedef ForEachLookupRecordIDUPP         ForEachLookupRecordID
  1666.  
  1667. ; typedef ForEachAttrTypeLookupUPP         ForEachAttrTypeLookup
  1668.  
  1669. ; typedef ForEachAttrValueUPP             ForEachAttrValue
  1670.  
  1671. ;
  1672. ;LookupParse:
  1673. ;
  1674. ;After a LookupGet call has completed, call LookupParse
  1675. ;to parse through the buffer that was filled in LookupGet.  The
  1676. ;toolbox will parse through the buffer and call the appropriate call-back routines
  1677. ;for each item in the getBuffer.
  1678. ;
  1679. ;'eachRecordID' will be called each time to return to the client one of the
  1680. ;RecordIDs from aRecordList.  The clientData parameter that you
  1681. ;pass in the parameter block will be passed to eachRecordID.
  1682. ;You are free to put anything in clientData - it is intended to allow
  1683. ;you some way to match the call-back to the original call (in case, for
  1684. ;example, you make simultaneous asynchronous LookupGet calls).  If you don't
  1685. ;want to get a call-back for each RecordID (for example, if you're looking up
  1686. ;attributes for only one RecordID), pass nil for eachRecordID.
  1687. ;
  1688. ;After forEachLocalRecordIDFunc is called, eachAttrType may be called to pass an
  1689. ;attribute type (one from attrTypeList) that exists in the record specified
  1690. ;in the last eachRecordID call.  If you don't want to get a call-back for
  1691. ;each AttributeType (for example, if you're looking up only one attribute type,
  1692. ;or you prefer to read the type from the Attribute struct during the eachAttrValue
  1693. ;call-back routine), pass nil for eachAttrType. However access controls may
  1694. ;prohibit you from reading some attribute types; in that case eachAttrValue
  1695. ;may not be called even though the value exists. Hence the client should
  1696. ;supply this call-back function to see the access controls for each attribute type.
  1697. ;
  1698. ;This will be followed by one or more calls to eachAttrValue, to pass the
  1699. ;type, tag, and attribute value.  NOTE THIS CHANGE:  you are no longer expected to
  1700. ;pass a pointer to a buffer in which to put the value.  Now you get a pointer to
  1701. ;the value, and you can process it within the call-back routine.
  1702. ;After one or more values are returned, eachAttrType may be called again to pass
  1703. ;another attribute type that exists in the last-specified RecordID.
  1704. ;
  1705. ;The client should return FALSE from eachRecordID, eachAttrType, and
  1706. ;eachAttrValue to continue processing of the LookupParse request.  Returning TRUE
  1707. ;from any call-back will terminate the LookupParse request.
  1708. ;
  1709. ;If LookupGet has failed with kOCEMoreData error, LookupParse will check to make sure that
  1710. ;ForEachAttributeValueFunc has been called at least once. If so, the client has the option
  1711. ;to continue from that attribute CreationID (for PAB/ADAP) in the next LookupGet call.
  1712. ;However, if it was not even called once, then the attribute value may be too big to fit in the
  1713. ;user's buffer. In this case, lastAttrValueCID (lastAttribute) and attrSize are returned in the
  1714. ;parse buffer and the call will fail with kOCEMoreAttrValue. However, it is possible that
  1715. ;ForEachAttributeValue was not called because the user does not have read access to some of
  1716. ;the attributeTypes in the list, and the buffer was full before even reading the creationID of
  1717. ;any of the attribute values.  A kOCEMoreData error is returned.
  1718. ;
  1719. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1720. ;of execution as the thread that made the LookupParse call.  That means that the
  1721. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  1722. ;that were in effect when the call was made.  Because of this, the call-back
  1723. ;routine has the same restrictions as the caller of LookupParse:
  1724. ;if LookupParse was not called from interrupt level, then the call-
  1725. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  1726. ;like a ioCompletion except that A5 will be preserved for the application.
  1727. ;
  1728. DirLookupParsePB        RECORD 0
  1729. qLink                     ds.l    1                ; offset: $0 (0)
  1730. reserved1                 ds.l    1                ; offset: $4 (4)
  1731. reserved2                 ds.l    1                ; offset: $8 (8)
  1732. ioCompletion             ds.l    1                ; offset: $C (12)
  1733. ioResult                 ds.w    1                ; offset: $10 (16)
  1734. saveA5                     ds.l    1                ; offset: $12 (18)
  1735. reqCode                     ds.w    1                ; offset: $16 (22)
  1736. reserved                 ds.l    2                ; offset: $18 (24)
  1737. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1738. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1739. callID                     ds.l    1                ; offset: $26 (38)
  1740. identity                 ds.l    1                ; offset: $2A (42)
  1741. gReserved1                 ds.l    1                ; offset: $2E (46)
  1742. gReserved2                 ds.l    1                ; offset: $32 (50)
  1743. gReserved3                 ds.l    1                ; offset: $36 (54)
  1744. clientData                 ds.l    1                ; offset: $3A (58)
  1745. aRecordList                 ds.l    1                ; offset: $3E (62)        ;   --> must be same from the corresponding Get call 
  1746. attrTypeList             ds.l    1                ; offset: $42 (66)        ;   --> must be same from the corresponding Get call 
  1747. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  1748. eachRecordID             ds.l    1                ; offset: $4A (74)        ;   --> 
  1749. eachAttrType             ds.l    1                ; offset: $4E (78)        ;   --> 
  1750. eachAttrValue             ds.l    1                ; offset: $52 (82)        ;   --> 
  1751. recordIDCount             ds.l    1                ; offset: $56 (86)        ;   --> must be same from the corresponding Get call 
  1752. attrTypeCount             ds.l    1                ; offset: $5A (90)        ;   --> must be same from the corresponding Get call 
  1753. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  1754. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> must be same from the corresponding Get call
  1755. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> must be same from the corresponding Get call
  1756. lastRecordIndex             ds.l    1                ; offset: $6A (106)        ;  <--  last RecordID processed when parse completed 
  1757. lastAttributeIndex         ds.l    1                ; offset: $6E (110)        ;  <--  last Attribute Type processed when parse completed 
  1758. lastAttribute             ds        Attribute        ; offset: $72 (114)        ;  <--  last attribute value (with this CreationID) processed when parse completed 
  1759. attrSize                 ds.l    1                ; offset: $AA (170)        ;  <--  length of the attribute we did not return 
  1760. sizeof                     EQU *                    ; size:   $AE (174)
  1761.                         ENDR
  1762. ;  AddAttributeValue 
  1763. DirAddAttributeValuePB    RECORD 0
  1764. qLink                     ds.l    1                ; offset: $0 (0)
  1765. reserved1                 ds.l    1                ; offset: $4 (4)
  1766. reserved2                 ds.l    1                ; offset: $8 (8)
  1767. ioCompletion             ds.l    1                ; offset: $C (12)
  1768. ioResult                 ds.w    1                ; offset: $10 (16)
  1769. saveA5                     ds.l    1                ; offset: $12 (18)
  1770. reqCode                     ds.w    1                ; offset: $16 (22)
  1771. reserved                 ds.l    2                ; offset: $18 (24)
  1772. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1773. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1774. callID                     ds.l    1                ; offset: $26 (38)
  1775. identity                 ds.l    1                ; offset: $2A (42)
  1776. gReserved1                 ds.l    1                ; offset: $2E (46)
  1777. gReserved2                 ds.l    1                ; offset: $32 (50)
  1778. gReserved3                 ds.l    1                ; offset: $36 (54)
  1779. clientData                 ds.l    1                ; offset: $3A (58)
  1780. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1781. attr                     ds.l    1                ; offset: $42 (66)        ;   --> AttributeCreationID returned here 
  1782. sizeof                     EQU *                    ; size:   $46 (70)
  1783.                         ENDR
  1784. ;
  1785. ;aRecord must contain valid PackedRLI and a CreationID.
  1786. ;
  1787. ;Instead of passing type, length, and value in three separate
  1788. ;fields, we take a pointer to an Attribute structure that contains
  1789. ;all three, and has room for the AttributeCreationNumber.
  1790. ;The AttributeCreationID will be returned in the attr itself.
  1791. ;
  1792. ;The AttributeTag tells the catalog service that the attribute is an RString,
  1793. ;binary, or a RecordID.
  1794. ;
  1795. ;
  1796. ;DeleteAttributeType:
  1797. ;This call is provided so that an existing AttributeType can be deleted.
  1798. ;If any attribute values exist for this type, they will all be deleted
  1799. ;(if the user has access rights to delete the values) and then the attribute type
  1800. ;will be deleted. Otherwise dsAccessDenied error will be returned.
  1801. ;
  1802. DirDeleteAttributeTypePB RECORD 0
  1803. qLink                     ds.l    1                ; offset: $0 (0)
  1804. reserved1                 ds.l    1                ; offset: $4 (4)
  1805. reserved2                 ds.l    1                ; offset: $8 (8)
  1806. ioCompletion             ds.l    1                ; offset: $C (12)
  1807. ioResult                 ds.w    1                ; offset: $10 (16)
  1808. saveA5                     ds.l    1                ; offset: $12 (18)
  1809. reqCode                     ds.w    1                ; offset: $16 (22)
  1810. reserved                 ds.l    2                ; offset: $18 (24)
  1811. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1812. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1813. callID                     ds.l    1                ; offset: $26 (38)
  1814. identity                 ds.l    1                ; offset: $2A (42)
  1815. gReserved1                 ds.l    1                ; offset: $2E (46)
  1816. gReserved2                 ds.l    1                ; offset: $32 (50)
  1817. gReserved3                 ds.l    1                ; offset: $36 (54)
  1818. clientData                 ds.l    1                ; offset: $3A (58)
  1819. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1820. attrType                 ds.l    1                ; offset: $42 (66)        ;   --> 
  1821. sizeof                     EQU *                    ; size:   $46 (70)
  1822.                         ENDR
  1823. ;
  1824. ;    DeleteAttributeValue
  1825. ;
  1826. DirDeleteAttributeValuePB RECORD 0
  1827. qLink                     ds.l    1                ; offset: $0 (0)
  1828. reserved1                 ds.l    1                ; offset: $4 (4)
  1829. reserved2                 ds.l    1                ; offset: $8 (8)
  1830. ioCompletion             ds.l    1                ; offset: $C (12)
  1831. ioResult                 ds.w    1                ; offset: $10 (16)
  1832. saveA5                     ds.l    1                ; offset: $12 (18)
  1833. reqCode                     ds.w    1                ; offset: $16 (22)
  1834. reserved                 ds.l    2                ; offset: $18 (24)
  1835. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1836. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1837. callID                     ds.l    1                ; offset: $26 (38)
  1838. identity                 ds.l    1                ; offset: $2A (42)
  1839. gReserved1                 ds.l    1                ; offset: $2E (46)
  1840. gReserved2                 ds.l    1                ; offset: $32 (50)
  1841. gReserved3                 ds.l    1                ; offset: $36 (54)
  1842. clientData                 ds.l    1                ; offset: $3A (58)
  1843. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> 
  1844. attr                     ds.l    1                ; offset: $42 (66)        ;   -> 
  1845. sizeof                     EQU *                    ; size:   $46 (70)
  1846.                         ENDR
  1847. ;
  1848. ;    ChangeAttributeValue:
  1849. ;    currentAttr ==> the attribute to be changed. For ADAS and PAB CreationID is
  1850. ;                    sufficient
  1851. ;    newAttr     ==> new value for the attribute. For ADAS and PAB 
  1852. ;                    CreationID field will be set when
  1853. ;                    the call succeesfully completes
  1854. ;    
  1855. ;    aRecord     ==> must contain valid PackedRecordLocationInfo and a CreationID.
  1856. ;
  1857. ;
  1858. ;    
  1859. ;
  1860. DirChangeAttributeValuePB RECORD 0
  1861. qLink                     ds.l    1                ; offset: $0 (0)
  1862. reserved1                 ds.l    1                ; offset: $4 (4)
  1863. reserved2                 ds.l    1                ; offset: $8 (8)
  1864. ioCompletion             ds.l    1                ; offset: $C (12)
  1865. ioResult                 ds.w    1                ; offset: $10 (16)
  1866. saveA5                     ds.l    1                ; offset: $12 (18)
  1867. reqCode                     ds.w    1                ; offset: $16 (22)
  1868. reserved                 ds.l    2                ; offset: $18 (24)
  1869. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1870. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1871. callID                     ds.l    1                ; offset: $26 (38)
  1872. identity                 ds.l    1                ; offset: $2A (42)
  1873. gReserved1                 ds.l    1                ; offset: $2E (46)
  1874. gReserved2                 ds.l    1                ; offset: $32 (50)
  1875. gReserved3                 ds.l    1                ; offset: $36 (54)
  1876. clientData                 ds.l    1                ; offset: $3A (58)
  1877. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> 
  1878. currentAttr                 ds.l    1                ; offset: $42 (66)        ;   -> 
  1879. newAttr                     ds.l    1                ; offset: $46 (70)        ;   -> 
  1880. sizeof                     EQU *                    ; size:   $4A (74)
  1881.                         ENDR
  1882. ;  VerifyAttributeValue 
  1883. DirVerifyAttributeValuePB RECORD 0
  1884. qLink                     ds.l    1                ; offset: $0 (0)
  1885. reserved1                 ds.l    1                ; offset: $4 (4)
  1886. reserved2                 ds.l    1                ; offset: $8 (8)
  1887. ioCompletion             ds.l    1                ; offset: $C (12)
  1888. ioResult                 ds.w    1                ; offset: $10 (16)
  1889. saveA5                     ds.l    1                ; offset: $12 (18)
  1890. reqCode                     ds.w    1                ; offset: $16 (22)
  1891. reserved                 ds.l    2                ; offset: $18 (24)
  1892. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1893. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1894. callID                     ds.l    1                ; offset: $26 (38)
  1895. identity                 ds.l    1                ; offset: $2A (42)
  1896. gReserved1                 ds.l    1                ; offset: $2E (46)
  1897. gReserved2                 ds.l    1                ; offset: $32 (50)
  1898. gReserved3                 ds.l    1                ; offset: $36 (54)
  1899. clientData                 ds.l    1                ; offset: $3A (58)
  1900. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1901. attr                     ds.l    1                ; offset: $42 (66)        ;   --> 
  1902. sizeof                     EQU *                    ; size:   $46 (70)
  1903.                         ENDR
  1904. ;
  1905. ;aRecord must contain valid PackedRLI and a CreationID.
  1906. ;
  1907. ;The attribute type and value are passed in the attribute structure.  If the
  1908. ;attribute CreationID is non-zero, the server will verify that an attribute with
  1909. ;the specified value and creation number exists in aRecord.  If the attribute
  1910. ;CreationID is zero, the server will verify the attribute by type and value
  1911. ;alone, and return the attribute CreationID in the Attribute struct if the
  1912. ;attribute exists.
  1913. ;
  1914. ;
  1915. ;EnumerateAttributeTypesGet:
  1916. ;The following two calls can be used to enumerate the attribute types present in
  1917. ;a specified RecordID.  The first, EnumerateAttributeTypesGet, processes the request
  1918. ;and reads the response into getBuffer, as much as will fit.  A kOCEMoreData error will
  1919. ;be returned if the buffer was not large enough.  After this call completes, the
  1920. ;client can call EnumerateAttributeTypesParse (see below).
  1921. ;
  1922. ;The user will able to continue from a startingPoint by setting a startingAttrType.
  1923. ;Typically, this should be the last value returned in EnumerateAttributeTypesParse call
  1924. ;when 'kOCEMoreData' is returned.
  1925. ;
  1926. ;If 'includeStartingPoint' is true when a 'startingAttrType' is specified, the starting value
  1927. ;will be included in the results, if it exists. If this is set to false, this value will not
  1928. ;be included. AttributeTypes following this type will be returned.
  1929. ;
  1930. DirEnumerateAttributeTypesGetPB RECORD 0
  1931. qLink                     ds.l    1                ; offset: $0 (0)
  1932. reserved1                 ds.l    1                ; offset: $4 (4)
  1933. reserved2                 ds.l    1                ; offset: $8 (8)
  1934. ioCompletion             ds.l    1                ; offset: $C (12)
  1935. ioResult                 ds.w    1                ; offset: $10 (16)
  1936. saveA5                     ds.l    1                ; offset: $12 (18)
  1937. reqCode                     ds.w    1                ; offset: $16 (22)
  1938. reserved                 ds.l    2                ; offset: $18 (24)
  1939. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1940. dsRefNum                 ds.w    1                ; offset: $24 (36)
  1941. callID                     ds.l    1                ; offset: $26 (38)
  1942. identity                 ds.l    1                ; offset: $2A (42)
  1943. gReserved1                 ds.l    1                ; offset: $2E (46)
  1944. gReserved2                 ds.l    1                ; offset: $32 (50)
  1945. gReserved3                 ds.l    1                ; offset: $36 (54)
  1946. clientData                 ds.l    1                ; offset: $3A (58)
  1947. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  1948. startingAttrType         ds.l    1                ; offset: $42 (66)        ;   --> starting point 
  1949. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  1950. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  1951. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  1952. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  1953. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  1954. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  1955. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the attrType specified by starting point 
  1956. padByte                     ds.b    1                ; offset: $5F (95)
  1957. i1Reserved                 ds.w    1                ; offset: $60 (96)        ;   --  
  1958. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  1959. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  1960. sizeof                     EQU *                    ; size:   $6A (106)
  1961.                         ENDR
  1962. ;  The call-back function is defined as follows: 
  1963. ; typedef ForEachAttrTypeUPP             ForEachAttrType
  1964.  
  1965. ;
  1966. ;EnumerateAttributeTypesParse:
  1967. ;After an EnumerateAttributeTypesGet call has completed, call EnumerateAttributeTypesParse
  1968. ;to parse through the buffer that was filled in EnumerateAttributeTypesGet.  The
  1969. ;toolbox will parse through the buffer and call the call-back routine for
  1970. ;each attribute type in the getBuffer.
  1971. ;
  1972. ;The client should return false from eachAttrType to continue
  1973. ;processing of the EnumerateAttributeTypesParse request.  Returning true will
  1974. ;terminate the EnumerateAttributeTypesParse request.  The clientData parameter that
  1975. ;you pass in the parameter block will be passed to eachAttrType.
  1976. ;You are free to put anything in clientData - it is intended to allow
  1977. ;you some way to match the call-back to the original call (in case, for
  1978. ;example, you make simultaneous asynchronous calls).
  1979. ;
  1980. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1981. ;of execution as the thread that made the EnumerateAttributeTypesParse call.  That means that the
  1982. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  1983. ;that were in effect when the call was made.  Because of this, the call-back
  1984. ;routine has the same restrictions as the caller of EnumerateAttributeTypesParse.
  1985. ;If EnumerateAttributeTypesParse was not called from interrupt level, then the call-
  1986. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  1987. ;like a ioCompletion except that A5 will be preserved for the application.
  1988. ;
  1989. DirEnumerateAttributeTypesParsePB RECORD 0
  1990. qLink                     ds.l    1                ; offset: $0 (0)
  1991. reserved1                 ds.l    1                ; offset: $4 (4)
  1992. reserved2                 ds.l    1                ; offset: $8 (8)
  1993. ioCompletion             ds.l    1                ; offset: $C (12)
  1994. ioResult                 ds.w    1                ; offset: $10 (16)
  1995. saveA5                     ds.l    1                ; offset: $12 (18)
  1996. reqCode                     ds.w    1                ; offset: $16 (22)
  1997. reserved                 ds.l    2                ; offset: $18 (24)
  1998. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  1999. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2000. callID                     ds.l    1                ; offset: $26 (38)
  2001. identity                 ds.l    1                ; offset: $2A (42)
  2002. gReserved1                 ds.l    1                ; offset: $2E (46)
  2003. gReserved2                 ds.l    1                ; offset: $32 (50)
  2004. gReserved3                 ds.l    1                ; offset: $36 (54)
  2005. clientData                 ds.l    1                ; offset: $3A (58)
  2006. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> Same as DirEnumerateAttributeTypesGetPB 
  2007. bReserved                 ds.l    1                ; offset: $42 (66)        ;   --  
  2008. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  2009. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  2010. eachAttrType             ds.l    1                ; offset: $4E (78)        ;   --> 
  2011. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2012. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2013. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2014. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  2015. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2016. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2017. sizeof                     EQU *                    ; size:   $6A (106)
  2018.                         ENDR
  2019. ;
  2020. ;DirAbort:
  2021. ;With this call a user will able to abort an outstanding catalog service call.
  2022. ;A user must pass a pointer to the parameter block for the outstanding call.
  2023. ;In the current version of the product, the toolbox will process this call
  2024. ;for NetSearchADAPDirectoriesGet or FindADAPDirectoryByNetSearch calls and if possible
  2025. ;it will abort. For other calls for ADAP and PAB this will return 'daAbortFailErr'.
  2026. ;For CSAM catalogs, this call will be passed to the corresponding CSAM driver.
  2027. ;The CSAM driver may process this call or may return 'daAbortFailErr'. This call can
  2028. ;be called only in synchronous mode. Since the abort call makes references to fields in
  2029. ;the pb associated with the original call, this pb must not be disposed or or altered if
  2030. ;the original call completes before the abort call has completed.
  2031. ;
  2032. DirAbortPB                RECORD 0
  2033. qLink                     ds.l    1                ; offset: $0 (0)
  2034. reserved1                 ds.l    1                ; offset: $4 (4)
  2035. reserved2                 ds.l    1                ; offset: $8 (8)
  2036. ioCompletion             ds.l    1                ; offset: $C (12)
  2037. ioResult                 ds.w    1                ; offset: $10 (16)
  2038. saveA5                     ds.l    1                ; offset: $12 (18)
  2039. reqCode                     ds.w    1                ; offset: $16 (22)
  2040. reserved                 ds.l    2                ; offset: $18 (24)
  2041. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2042. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2043. callID                     ds.l    1                ; offset: $26 (38)
  2044. identity                 ds.l    1                ; offset: $2A (42)
  2045. gReserved1                 ds.l    1                ; offset: $2E (46)
  2046. gReserved2                 ds.l    1                ; offset: $32 (50)
  2047. gReserved3                 ds.l    1                ; offset: $36 (54)
  2048. clientData                 ds.l    1                ; offset: $3A (58)
  2049. pb                         ds.l    1                ; offset: $3E (62)        ;   --> pb for the call which must be aborted 
  2050. sizeof                     EQU *                    ; size:   $42 (66)
  2051.                         ENDR
  2052. ;
  2053. ;AddPseudonym:
  2054. ;An alternate name and type can be added to a given record. If allowDuplicate
  2055. ;is set the name and type will be added even if the same name and type already
  2056. ;exists.
  2057. ;
  2058. DirAddPseudonymPB        RECORD 0
  2059. qLink                     ds.l    1                ; offset: $0 (0)
  2060. reserved1                 ds.l    1                ; offset: $4 (4)
  2061. reserved2                 ds.l    1                ; offset: $8 (8)
  2062. ioCompletion             ds.l    1                ; offset: $C (12)
  2063. ioResult                 ds.w    1                ; offset: $10 (16)
  2064. saveA5                     ds.l    1                ; offset: $12 (18)
  2065. reqCode                     ds.w    1                ; offset: $16 (22)
  2066. reserved                 ds.l    2                ; offset: $18 (24)
  2067. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2068. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2069. callID                     ds.l    1                ; offset: $26 (38)
  2070. identity                 ds.l    1                ; offset: $2A (42)
  2071. gReserved1                 ds.l    1                ; offset: $2E (46)
  2072. gReserved2                 ds.l    1                ; offset: $32 (50)
  2073. gReserved3                 ds.l    1                ; offset: $36 (54)
  2074. clientData                 ds.l    1                ; offset: $3A (58)
  2075. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> RecordID to which pseudonym is to be added 
  2076. pseudonymName             ds.l    1                ; offset: $42 (66)        ;   --> new name to be added as pseudonym 
  2077. pseudonymType             ds.l    1                ; offset: $46 (70)        ;   --> new name to be added as pseudonym 
  2078. allowDuplicate             ds.b    1                ; offset: $4A (74)        ;   --> 
  2079. filler1                     ds.b    1                ; offset: $4B (75)
  2080. sizeof                     EQU *                    ; size:   $4C (76)
  2081.                         ENDR
  2082. ;
  2083. ;DeletePseudonym:
  2084. ;An alternate name and type for a given record can be deleted.
  2085. ;
  2086. DirDeletePseudonymPB    RECORD 0
  2087. qLink                     ds.l    1                ; offset: $0 (0)
  2088. reserved1                 ds.l    1                ; offset: $4 (4)
  2089. reserved2                 ds.l    1                ; offset: $8 (8)
  2090. ioCompletion             ds.l    1                ; offset: $C (12)
  2091. ioResult                 ds.w    1                ; offset: $10 (16)
  2092. saveA5                     ds.l    1                ; offset: $12 (18)
  2093. reqCode                     ds.w    1                ; offset: $16 (22)
  2094. reserved                 ds.l    2                ; offset: $18 (24)
  2095. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2096. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2097. callID                     ds.l    1                ; offset: $26 (38)
  2098. identity                 ds.l    1                ; offset: $2A (42)
  2099. gReserved1                 ds.l    1                ; offset: $2E (46)
  2100. gReserved2                 ds.l    1                ; offset: $32 (50)
  2101. gReserved3                 ds.l    1                ; offset: $36 (54)
  2102. clientData                 ds.l    1                ; offset: $3A (58)
  2103. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> RecordID to which pseudonym to be added 
  2104. pseudonymName             ds.l    1                ; offset: $42 (66)        ;   --> pseudonymName to be deleted 
  2105. pseudonymType             ds.l    1                ; offset: $46 (70)        ;   --> pseudonymType to be deleted 
  2106. sizeof                     EQU *                    ; size:   $4A (74)
  2107.                         ENDR
  2108. ;
  2109. ;    AddAlias:
  2110. ;    This call can be used to create an alias  record. The alias
  2111. ;    can be created either in the same or different cluster. ADAS will not support
  2112. ;    this call for this release. A new catalog capability flag 'kSupportsAlias' will indicate
  2113. ;    if the catalog supports this call. PAB's will support this call. For the PAB implementation,
  2114. ;    this call will create a record with the name and type specified an aRecord.
  2115. ;    This call works exactly like AddRecord.
  2116. ;    If 'allowDuplicate' is false and another record with same name and type already exists
  2117. ;    'daNoDupAllowed' error will be returned.
  2118. ;
  2119. DirAddAliasPB            RECORD 0
  2120. qLink                     ds.l    1                ; offset: $0 (0)
  2121. reserved1                 ds.l    1                ; offset: $4 (4)
  2122. reserved2                 ds.l    1                ; offset: $8 (8)
  2123. ioCompletion             ds.l    1                ; offset: $C (12)
  2124. ioResult                 ds.w    1                ; offset: $10 (16)
  2125. saveA5                     ds.l    1                ; offset: $12 (18)
  2126. reqCode                     ds.w    1                ; offset: $16 (22)
  2127. reserved                 ds.l    2                ; offset: $18 (24)
  2128. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2129. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2130. callID                     ds.l    1                ; offset: $26 (38)
  2131. identity                 ds.l    1                ; offset: $2A (42)
  2132. gReserved1                 ds.l    1                ; offset: $2E (46)
  2133. gReserved2                 ds.l    1                ; offset: $32 (50)
  2134. gReserved3                 ds.l    1                ; offset: $36 (54)
  2135. clientData                 ds.l    1                ; offset: $3A (58)
  2136. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> 
  2137. allowDuplicate             ds.b    1                ; offset: $42 (66)        ;   -> 
  2138. filler1                     ds.b    1                ; offset: $43 (67)
  2139. sizeof                     EQU *                    ; size:   $44 (68)
  2140.                         ENDR
  2141. ;
  2142. ;DirFindValue:
  2143. ;This call can be used to find the occurrence of a value. The value
  2144. ;to be matched is passed in the buffer 'matchingData' field. The current
  2145. ;ADAP/PAB implementation will match a maximum of 32 bytes of data.
  2146. ;For attribute values in the PAB/ADAP implementation, only the first 32 bytes will
  2147. ;be used for comparing the occurrence of data. Search can be restricted to
  2148. ;a particular record and/or attribute type by specifying 'aRecord' or 'aType'.
  2149. ;After finding one occurrence, 'startingRecord' and 'startingAttribute'
  2150. ;can be specified to find the next occurrence of the same value.
  2151. ;'sortDirection' can be specified with starting values to search forward or backward.
  2152. ;When a matching value is found, the 'recordFound' indicates the reccordID in which the
  2153. ;data occurrence was found, 'attributeFound' indicates the attribute with in which the
  2154. ;matching data was found. ADAP/PAB implementation returns only the type and creationID of
  2155. ;attributes. Catalogs which don't support creationIDs may return the
  2156. ;complete value; hence this call may need a buffer to hold the data. For ADAP/PAB implementations
  2157. ;the user has to make a DirLookup call to get the actual data. 'recordFound' and
  2158. ;'attributeFound' can be used to initialize 'startingRecord' and 'startingAttribute' to
  2159. ;find the next occurrence of the value.
  2160. ;
  2161. DirFindValuePB            RECORD 0
  2162. qLink                     ds.l    1                ; offset: $0 (0)
  2163. reserved1                 ds.l    1                ; offset: $4 (4)
  2164. reserved2                 ds.l    1                ; offset: $8 (8)
  2165. ioCompletion             ds.l    1                ; offset: $C (12)
  2166. ioResult                 ds.w    1                ; offset: $10 (16)
  2167. saveA5                     ds.l    1                ; offset: $12 (18)
  2168. reqCode                     ds.w    1                ; offset: $16 (22)
  2169. reserved                 ds.l    2                ; offset: $18 (24)
  2170. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2171. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2172. callID                     ds.l    1                ; offset: $26 (38)
  2173. identity                 ds.l    1                ; offset: $2A (42)
  2174. gReserved1                 ds.l    1                ; offset: $2E (46)
  2175. gReserved2                 ds.l    1                ; offset: $32 (50)
  2176. gReserved3                 ds.l    1                ; offset: $36 (54)
  2177. clientData                 ds.l    1                ; offset: $3A (58)
  2178. aRLI                     ds.l    1                ; offset: $3E (62)        ;   --> an RLI specifying the cluster to be enumerated 
  2179. aRecord                     ds.l    1                ; offset: $42 (66)        ;   --> if not nil, look only in this record 
  2180. attrType                 ds.l    1                ; offset: $46 (70)        ;   --> if not nil, look only in this attribute type 
  2181. startingRecord             ds.l    1                ; offset: $4A (74)        ;   --> record in which to start searching 
  2182. startingAttribute         ds.l    1                ; offset: $4E (78)        ;   --> attribute in which to start searching 
  2183. recordFound                 ds.l    1                ; offset: $52 (82)        ;  <--  record in which data was found 
  2184. attributeFound             ds        Attribute        ; offset: $56 (86)        ;  <--  attribute in which data was found 
  2185. matchSize                 ds.l    1                ; offset: $8E (142)        ;   --> length of matching bytes 
  2186. matchingData             ds.l    1                ; offset: $92 (146)        ;   --> data bytes to be matched in search 
  2187. sortDirection             ds.w    1                ; offset: $96 (150)        ;   --> sort direction (forwards or backwards) 
  2188. sizeof                     EQU *                    ; size:   $98 (152)
  2189.                         ENDR
  2190. ;
  2191. ;EnumeratePseudonymGet:
  2192. ;This call can be used to enumerate the existing pseudonyms for
  2193. ;a given record specified in 'aRecord'. A starting point can be specified
  2194. ;by 'startingName' and 'startingType'. If the 'includeStartingPoint' boolean
  2195. ;is true and a starting point is specified, the name specified by startingName
  2196. ;and startingType also is returned in the results, if it exists. If this is set to false,
  2197. ;the pseudonym in startingName and Type is not included.
  2198. ;Pseudonyms returned in the 'getBuffer' can be extracted by making an
  2199. ;EnumeratePseudonymParse call. The results will consist of a RecordID with the
  2200. ;name and type of the pseudonym. If the buffer could not hold all the results, then
  2201. ;'kOCEMoreData' error will be returned. The user will be able to continue the call by
  2202. ;using the last result returned as starting point for the next call.
  2203. ;
  2204. DirEnumeratePseudonymGetPB RECORD 0
  2205. qLink                     ds.l    1                ; offset: $0 (0)
  2206. reserved1                 ds.l    1                ; offset: $4 (4)
  2207. reserved2                 ds.l    1                ; offset: $8 (8)
  2208. ioCompletion             ds.l    1                ; offset: $C (12)
  2209. ioResult                 ds.w    1                ; offset: $10 (16)
  2210. saveA5                     ds.l    1                ; offset: $12 (18)
  2211. reqCode                     ds.w    1                ; offset: $16 (22)
  2212. reserved                 ds.l    2                ; offset: $18 (24)
  2213. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2214. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2215. callID                     ds.l    1                ; offset: $26 (38)
  2216. identity                 ds.l    1                ; offset: $2A (42)
  2217. gReserved1                 ds.l    1                ; offset: $2E (46)
  2218. gReserved2                 ds.l    1                ; offset: $32 (50)
  2219. gReserved3                 ds.l    1                ; offset: $36 (54)
  2220. clientData                 ds.l    1                ; offset: $3A (58)
  2221. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2222. startingName             ds.l    1                ; offset: $42 (66)        ;   --> 
  2223. startingType             ds.l    1                ; offset: $46 (70)        ;   --> 
  2224. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  2225. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  2226. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2227. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2228. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2229. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the Pseudonym specified by starting point will be included 
  2230. padByte                     ds.b    1                ; offset: $5F (95)
  2231. i1Reserved                 ds.w    1                ; offset: $60 (96)        ;   --  
  2232. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2233. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2234. sizeof                     EQU *                    ; size:   $6A (106)
  2235.                         ENDR
  2236. ;  The call-back function is defined as follows: 
  2237. ; typedef ForEachRecordIDUPP             ForEachRecordID
  2238.  
  2239. ;
  2240. ;EnumeratePseudonymParse:
  2241. ;The pseudonyms returned in the 'getBuffer' from the EnumeratePseudonymGet call
  2242. ;can be extracted by using the EnumeratePseudonymParse call. 'eachRecordID'
  2243. ;will be called for each pseudonym.
  2244. ;
  2245. ;Returning true from any call-back will terminate the EnumeratePseudonymParse call.
  2246. ;
  2247. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2248. ;of execution as the thread that made the EnumeratePseudonymParse call.  That means that the
  2249. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2250. ;that were in effect when the call was made.  Because of this, the call-back
  2251. ;routine has the same restrictions as the caller of EnumeratePseudonymParse:
  2252. ;if EnumeratePseudonymParse was not called from interrupt level, then the call-
  2253. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2254. ;like a ioCompletion except that A5 will be preserved for the application.
  2255. ;
  2256. DirEnumeratePseudonymParsePB RECORD 0
  2257. qLink                     ds.l    1                ; offset: $0 (0)
  2258. reserved1                 ds.l    1                ; offset: $4 (4)
  2259. reserved2                 ds.l    1                ; offset: $8 (8)
  2260. ioCompletion             ds.l    1                ; offset: $C (12)
  2261. ioResult                 ds.w    1                ; offset: $10 (16)
  2262. saveA5                     ds.l    1                ; offset: $12 (18)
  2263. reqCode                     ds.w    1                ; offset: $16 (22)
  2264. reserved                 ds.l    2                ; offset: $18 (24)
  2265. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2266. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2267. callID                     ds.l    1                ; offset: $26 (38)
  2268. identity                 ds.l    1                ; offset: $2A (42)
  2269. gReserved1                 ds.l    1                ; offset: $2E (46)
  2270. gReserved2                 ds.l    1                ; offset: $32 (50)
  2271. gReserved3                 ds.l    1                ; offset: $36 (54)
  2272. clientData                 ds.l    1                ; offset: $3A (58)
  2273. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> same as DirEnumerateAliasesGetPB 
  2274. bReserved                 ds.l    1                ; offset: $42 (66)        ;   --  
  2275. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  2276. eachRecordID             ds.l    1                ; offset: $4A (74)        ;   --> 
  2277. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  2278. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2279. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2280. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2281. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  2282. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2283. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2284. sizeof                     EQU *                    ; size:   $6A (106)
  2285.                         ENDR
  2286. ;  GetNameAndType 
  2287. DirGetNameAndTypePB        RECORD 0
  2288. qLink                     ds.l    1                ; offset: $0 (0)
  2289. reserved1                 ds.l    1                ; offset: $4 (4)
  2290. reserved2                 ds.l    1                ; offset: $8 (8)
  2291. ioCompletion             ds.l    1                ; offset: $C (12)
  2292. ioResult                 ds.w    1                ; offset: $10 (16)
  2293. saveA5                     ds.l    1                ; offset: $12 (18)
  2294. reqCode                     ds.w    1                ; offset: $16 (22)
  2295. reserved                 ds.l    2                ; offset: $18 (24)
  2296. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2297. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2298. callID                     ds.l    1                ; offset: $26 (38)
  2299. identity                 ds.l    1                ; offset: $2A (42)
  2300. gReserved1                 ds.l    1                ; offset: $2E (46)
  2301. gReserved2                 ds.l    1                ; offset: $32 (50)
  2302. gReserved3                 ds.l    1                ; offset: $36 (54)
  2303. clientData                 ds.l    1                ; offset: $3A (58)
  2304. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2305. sizeof                     EQU *                    ; size:   $42 (66)
  2306.                         ENDR
  2307. ;
  2308. ;aRecord must contain valid RLI and a CreationID.  It
  2309. ;must also contain pointers to maximum-length RStrings (name and type fields)
  2310. ;in which will be returned the record's distinguished name and type.
  2311. ;
  2312. ;
  2313. ;SetNameAndType:
  2314. ;This call can be used to change a name and type for a record. The record
  2315. ;to be renamed is specified using 'aRecord'.
  2316. ;'newName' and 'newType' indicate the name and type to be set.
  2317. ;'allowDuplicate' if true indicates that name is to be set even if another
  2318. ;name and type exactly matches the newName and newType specified.
  2319. ;
  2320. ;'newName' and 'newType' are required since the catalogs not supporting
  2321. ;CreationID require name and type fields in the recordID to identify a given
  2322. ;record.
  2323. ;
  2324. DirSetNameAndTypePB        RECORD 0
  2325. qLink                     ds.l    1                ; offset: $0 (0)
  2326. reserved1                 ds.l    1                ; offset: $4 (4)
  2327. reserved2                 ds.l    1                ; offset: $8 (8)
  2328. ioCompletion             ds.l    1                ; offset: $C (12)
  2329. ioResult                 ds.w    1                ; offset: $10 (16)
  2330. saveA5                     ds.l    1                ; offset: $12 (18)
  2331. reqCode                     ds.w    1                ; offset: $16 (22)
  2332. reserved                 ds.l    2                ; offset: $18 (24)
  2333. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2334. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2335. callID                     ds.l    1                ; offset: $26 (38)
  2336. identity                 ds.l    1                ; offset: $2A (42)
  2337. gReserved1                 ds.l    1                ; offset: $2E (46)
  2338. gReserved2                 ds.l    1                ; offset: $32 (50)
  2339. gReserved3                 ds.l    1                ; offset: $36 (54)
  2340. clientData                 ds.l    1                ; offset: $3A (58)
  2341. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2342. allowDuplicate             ds.b    1                ; offset: $42 (66)        ;   --> 
  2343. padByte                     ds.b    1                ; offset: $43 (67)
  2344. newName                     ds.l    1                ; offset: $44 (68)        ;   --> new name for the record 
  2345. newType                     ds.l    1                ; offset: $48 (72)        ;   --> new type for the record 
  2346. sizeof                     EQU *                    ; size:   $4C (76)
  2347.                         ENDR
  2348. ;
  2349. ;DirGetMetaRecordInfo: This call can be made to obtain
  2350. ;the MetaRecordInfo for a given record. Information returned
  2351. ;is 16 bytes of OPAQUE information about the record.
  2352. ;
  2353. DirGetRecordMetaInfoPB    RECORD 0
  2354. qLink                     ds.l    1                ; offset: $0 (0)
  2355. reserved1                 ds.l    1                ; offset: $4 (4)
  2356. reserved2                 ds.l    1                ; offset: $8 (8)
  2357. ioCompletion             ds.l    1                ; offset: $C (12)
  2358. ioResult                 ds.w    1                ; offset: $10 (16)
  2359. saveA5                     ds.l    1                ; offset: $12 (18)
  2360. reqCode                     ds.w    1                ; offset: $16 (22)
  2361. reserved                 ds.l    2                ; offset: $18 (24)
  2362. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2363. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2364. callID                     ds.l    1                ; offset: $26 (38)
  2365. identity                 ds.l    1                ; offset: $2A (42)
  2366. gReserved1                 ds.l    1                ; offset: $2E (46)
  2367. gReserved2                 ds.l    1                ; offset: $32 (50)
  2368. gReserved3                 ds.l    1                ; offset: $36 (54)
  2369. clientData                 ds.l    1                ; offset: $3A (58)
  2370. aRecord                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2371. metaInfo                 ds        DirMetaInfo        ; offset: $42 (66)        ;  <--  
  2372. sizeof                     EQU *                    ; size:   $52 (82)
  2373.                         ENDR
  2374. ;
  2375. ;DirGetDNodeMetaInfo: This call can be made to obtain
  2376. ;the DNodeMetaInfo for a given Packed RLI. Information returned
  2377. ;is 16 bytes of OPAQUE information about the DNode.
  2378. ;
  2379. DirGetDNodeMetaInfoPB    RECORD 0
  2380. qLink                     ds.l    1                ; offset: $0 (0)
  2381. reserved1                 ds.l    1                ; offset: $4 (4)
  2382. reserved2                 ds.l    1                ; offset: $8 (8)
  2383. ioCompletion             ds.l    1                ; offset: $C (12)
  2384. ioResult                 ds.w    1                ; offset: $10 (16)
  2385. saveA5                     ds.l    1                ; offset: $12 (18)
  2386. reqCode                     ds.w    1                ; offset: $16 (22)
  2387. reserved                 ds.l    2                ; offset: $18 (24)
  2388. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2389. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2390. callID                     ds.l    1                ; offset: $26 (38)
  2391. identity                 ds.l    1                ; offset: $2A (42)
  2392. gReserved1                 ds.l    1                ; offset: $2E (46)
  2393. gReserved2                 ds.l    1                ; offset: $32 (50)
  2394. gReserved3                 ds.l    1                ; offset: $36 (54)
  2395. clientData                 ds.l    1                ; offset: $3A (58)
  2396. pRLI                     ds.l    1                ; offset: $3E (62)        ;   --> 
  2397. metaInfo                 ds        DirMetaInfo        ; offset: $42 (66)        ;  <--  
  2398. sizeof                     EQU *                    ; size:   $52 (82)
  2399.                         ENDR
  2400. ;
  2401. ;EnumerateDirectoriesGet:
  2402. ;A user can enumerate all the catalogs installed. This includes installed
  2403. ;ADAP and CSAM catalogs. The user can specify a signature as input to restrict
  2404. ;the results. kDirADAPKind will return only ADAP catalogs, kDirDSAMKind
  2405. ;will return all CSAM catalogs. kDirAllKinds will get both ADAP & CSAM catalogs.
  2406. ;A specific signature (e.g. X.500) may be used to get catalogs with an X.500 signature.
  2407. ;The information for each catalog returned will have directoryName, discriminator and features.
  2408. ;
  2409. ;If the user receives 'noErr' or 'kOCEMoreData', the buffer will contain valid results. A user
  2410. ;can extract the results in the 'getBuffer' by making an DirEnumerateDirectories call.
  2411. ;
  2412. ;If 'kOCEMoreData' is received, the user can continue enumeration by using the last catalog and
  2413. ;discriminator as startingDirectoryName and staringDirDiscriminator in the next call.
  2414. ;
  2415. ;If 'includeStartingPoint' is true and a starting point is specified,
  2416. ;the staring point will be returned in the result. If false, it is not included.
  2417. ;
  2418. DirEnumerateDirectoriesGetPB RECORD 0
  2419. qLink                     ds.l    1                ; offset: $0 (0)
  2420. reserved1                 ds.l    1                ; offset: $4 (4)
  2421. reserved2                 ds.l    1                ; offset: $8 (8)
  2422. ioCompletion             ds.l    1                ; offset: $C (12)
  2423. ioResult                 ds.w    1                ; offset: $10 (16)
  2424. saveA5                     ds.l    1                ; offset: $12 (18)
  2425. reqCode                     ds.w    1                ; offset: $16 (22)
  2426. reserved                 ds.l    2                ; offset: $18 (24)
  2427. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2428. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2429. callID                     ds.l    1                ; offset: $26 (38)
  2430. identity                 ds.l    1                ; offset: $2A (42)
  2431. gReserved1                 ds.l    1                ; offset: $2E (46)
  2432. gReserved2                 ds.l    1                ; offset: $32 (50)
  2433. gReserved3                 ds.l    1                ; offset: $36 (54)
  2434. clientData                 ds.l    1                ; offset: $3A (58)
  2435. directoryKind             ds.l    1                ; offset: $3E (62)        ;   --> enumerate catalogs bearing this signature 
  2436. startingDirectoryName     ds.l    1                ; offset: $42 (66)        ;   --> staring catalog name 
  2437. startingDirDiscriminator  ds    DirDiscriminator ; offset: $46 (70)        ;   --> staring catalog discriminator 
  2438. eReserved                 ds.l    1                ; offset: $4E (78)        ;   --  
  2439. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2440. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2441. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2442. includeStartingPoint     ds.b    1                ; offset: $5E (94)        ;   --> if true return the catalog specified by starting point 
  2443. padByte                     ds.b    1                ; offset: $5F (95)
  2444. i1Reserved                 ds.w    1                ; offset: $60 (96)        ;   --  
  2445. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2446. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2447. sizeof                     EQU *                    ; size:   $6A (106)
  2448.                         ENDR
  2449. ; typedef ForEachDirectoryUPP             ForEachDirectory
  2450.  
  2451. ;
  2452. ;EnumerateDirectoriesParse:
  2453. ;The catalog info returned in 'getBuffer' from the EnumerateDirectoriesGet call
  2454. ;can be extracted using the EnumerateDirectoriesParse call. 'eachDirectory' will
  2455. ;be called for each catalog.
  2456. ;
  2457. ;Returning true from any call-back will terminate the EnumerateDirectoriesParse call.
  2458. ;
  2459. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2460. ;of execution as the thread that made the EnumerateDirectoriesParse call.  That means that the
  2461. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2462. ;that were in effect when the call was made.  Because of this, the call-back
  2463. ;routine has the same restrictions as the caller of EnumerateDirectoriesParse:
  2464. ;if EnumerateDirectoriesParse was not called from interrupt level, then the call-
  2465. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2466. ;like a ioCompletion except that A5 will be preserved for the application.
  2467. ;
  2468. ;eachDirectory will be called each time to return to the client a
  2469. ;DirectoryName, DirDiscriminator, and features for that catalog.
  2470. ;
  2471. DirEnumerateDirectoriesParsePB RECORD 0
  2472. qLink                     ds.l    1                ; offset: $0 (0)
  2473. reserved1                 ds.l    1                ; offset: $4 (4)
  2474. reserved2                 ds.l    1                ; offset: $8 (8)
  2475. ioCompletion             ds.l    1                ; offset: $C (12)
  2476. ioResult                 ds.w    1                ; offset: $10 (16)
  2477. saveA5                     ds.l    1                ; offset: $12 (18)
  2478. reqCode                     ds.w    1                ; offset: $16 (22)
  2479. reserved                 ds.l    2                ; offset: $18 (24)
  2480. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2481. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2482. callID                     ds.l    1                ; offset: $26 (38)
  2483. identity                 ds.l    1                ; offset: $2A (42)
  2484. gReserved1                 ds.l    1                ; offset: $2E (46)
  2485. gReserved2                 ds.l    1                ; offset: $32 (50)
  2486. gReserved3                 ds.l    1                ; offset: $36 (54)
  2487. clientData                 ds.l    1                ; offset: $3A (58)
  2488. aReserved                 ds.l    1                ; offset: $3E (62)        ;   --  
  2489. bReserved                 ds.l    1                ; offset: $42 (66)        ;   --  
  2490. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  2491. dReserved                 ds.l    1                ; offset: $4A (74)        ;   --  
  2492. eachDirectory             ds.l    1                ; offset: $4E (78)        ;   --> 
  2493. fReserved                 ds.l    1                ; offset: $52 (82)        ;   --  
  2494. gReserved                 ds.l    1                ; offset: $56 (86)        ;   --  
  2495. hReserved                 ds.l    1                ; offset: $5A (90)        ;   --  
  2496. iReserved                 ds.l    1                ; offset: $5E (94)        ;   --  
  2497. getBuffer                 ds.l    1                ; offset: $62 (98)        ;   --> 
  2498. getBufferSize             ds.l    1                ; offset: $66 (102)        ;   --> 
  2499. sizeof                     EQU *                    ; size:   $6A (106)
  2500.                         ENDR
  2501. ;
  2502. ;The Following five call are specific to ADAP Catalogs. Toolbox
  2503. ;remembers a list of catalogs across boots. If any catalog service
  2504. ;call is intended for a ADAP catalog, then it must be in the list.
  2505. ;In order for managing this list, A client (Probably DE will use these
  2506. ;calls.
  2507. ;DirAddADAPDirectoryPB: Add a new ADAP catalog to the list.
  2508. ;DirRemoveADAPDirectory: Remove a ADAP catalog from the list.
  2509. ;DirNetSearchADAPDirectoriesGet:   search an internet for adas catalogs.
  2510. ;DirNetSearchADAPDirectoriesParse: extract the results obtained NetSearchADAPDirectoriesGet.
  2511. ;DirFindADAPDirectoryByNetSearch: Find a specified catalog through net search.
  2512. ;
  2513. ;
  2514. ;NetSearchADAPDirectoriesGet:
  2515. ;This call can be used to make a network wide search for finding ADAP catalogs.
  2516. ;This call will be supported only by 'ADAP' and involve highly expensive
  2517. ;network operations, so the user is advised to use utmost discretion before
  2518. ;making this call. The results will be collected in the 'getbuffer' and can be
  2519. ;extracted using NetSearchADAPDirectoriesParse call. The directoryName,
  2520. ;the directoryDiscriminator, features and serverHint (AppleTalk address for
  2521. ;a PathFinder serving that catalog) are collected for each catalog found
  2522. ;on the network. If buffer is too small to hold all the catalogs found on
  2523. ;the network, a 'kOCEMoreData' error will be returned.
  2524. ;
  2525. DirNetSearchADAPDirectoriesGetPB RECORD 0
  2526. qLink                     ds.l    1                ; offset: $0 (0)
  2527. reserved1                 ds.l    1                ; offset: $4 (4)
  2528. reserved2                 ds.l    1                ; offset: $8 (8)
  2529. ioCompletion             ds.l    1                ; offset: $C (12)
  2530. ioResult                 ds.w    1                ; offset: $10 (16)
  2531. saveA5                     ds.l    1                ; offset: $12 (18)
  2532. reqCode                     ds.w    1                ; offset: $16 (22)
  2533. reserved                 ds.l    2                ; offset: $18 (24)
  2534. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2535. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2536. callID                     ds.l    1                ; offset: $26 (38)
  2537. identity                 ds.l    1                ; offset: $2A (42)
  2538. gReserved1                 ds.l    1                ; offset: $2E (46)
  2539. gReserved2                 ds.l    1                ; offset: $32 (50)
  2540. gReserved3                 ds.l    1                ; offset: $36 (54)
  2541. clientData                 ds.l    1                ; offset: $3A (58)
  2542. getBuffer                 ds.l    1                ; offset: $3E (62)        ;   --> 
  2543. getBufferSize             ds.l    1                ; offset: $42 (66)        ;   --> 
  2544. cReserved                 ds.l    1                ; offset: $46 (70)        ;   --  
  2545. sizeof                     EQU *                    ; size:   $4A (74)
  2546.                         ENDR
  2547. ; typedef ForEachADAPDirectoryUPP         ForEachADAPDirectory
  2548.  
  2549. ;
  2550. ;DirNetSearchADAPDirectoriesParse:
  2551. ;This call can be used to extract the results obtained in the 'getBuffer'.
  2552. ;The directoryName, directoryDiscriminator, features and
  2553. ;serverHint (AppleTalk address for a PathFinder serving that catalog) are
  2554. ;returned in each call-back. These values may be used to make an
  2555. ;AddADAPDirectory call.
  2556. ;
  2557. ;Returning TRUE from any call-back will terminate the NetSearchADAPDirectoriesParse request.
  2558. ;
  2559. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2560. ;of execution as the thread that made the DirNetSearchADAPDirectoriesParse call. That means that the
  2561. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2562. ;that were in effect when the call was made.  Because of this, the call-back
  2563. ;routine has the same restrictions as the caller of DirNetSearchADAPDirectoriesParse:
  2564. ;if DirNetSearchADAPDirectoriesParse was not called from interrupt level, then the call-
  2565. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2566. ;like a ioCompletion except that A5 will be preserved for the application.
  2567. ;
  2568. DirNetSearchADAPDirectoriesParsePB RECORD 0
  2569. qLink                     ds.l    1                ; offset: $0 (0)
  2570. reserved1                 ds.l    1                ; offset: $4 (4)
  2571. reserved2                 ds.l    1                ; offset: $8 (8)
  2572. ioCompletion             ds.l    1                ; offset: $C (12)
  2573. ioResult                 ds.w    1                ; offset: $10 (16)
  2574. saveA5                     ds.l    1                ; offset: $12 (18)
  2575. reqCode                     ds.w    1                ; offset: $16 (22)
  2576. reserved                 ds.l    2                ; offset: $18 (24)
  2577. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2578. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2579. callID                     ds.l    1                ; offset: $26 (38)
  2580. identity                 ds.l    1                ; offset: $2A (42)
  2581. gReserved1                 ds.l    1                ; offset: $2E (46)
  2582. gReserved2                 ds.l    1                ; offset: $32 (50)
  2583. gReserved3                 ds.l    1                ; offset: $36 (54)
  2584. clientData                 ds.l    1                ; offset: $3A (58)
  2585. getBuffer                 ds.l    1                ; offset: $3E (62)        ;   --> 
  2586. getBufferSize             ds.l    1                ; offset: $42 (66)        ;   --> 
  2587. eachADAPDirectory         ds.l    1                ; offset: $46 (70)        ;   --> 
  2588. sizeof                     EQU *                    ; size:   $4A (74)
  2589.                         ENDR
  2590. ;
  2591. ;DirFindADAPDirectoryByNetSearch:
  2592. ;This call can be used to make a network wide search to find an ADAP catalog.
  2593. ;This call will be supported only by 'ADAP' and involves highly expensive
  2594. ;network operations, so the user is advised to use utmost discretion before
  2595. ;making this call. The catalog is specified using directoryName and discriminator.
  2596. ;If 'addToOCESetup' is true, the catalog will be automatically added to the setup
  2597. ;list and will be visible through the EnumerateDirectories call and also
  2598. ;also a creationID to the directoryRecord will be returned.
  2599. ;If this parameter is set to 'false', the catalog will be added to temporary list
  2600. ;and will be available for making other catalog service calls. The catalogs
  2601. ;which are not in the preference catalog list will not be visible through the
  2602. ;EnumerateDirectories call.
  2603. ;
  2604. DirFindADAPDirectoryByNetSearchPB RECORD 0
  2605. qLink                     ds.l    1                ; offset: $0 (0)
  2606. reserved1                 ds.l    1                ; offset: $4 (4)
  2607. reserved2                 ds.l    1                ; offset: $8 (8)
  2608. ioCompletion             ds.l    1                ; offset: $C (12)
  2609. ioResult                 ds.w    1                ; offset: $10 (16)
  2610. saveA5                     ds.l    1                ; offset: $12 (18)
  2611. reqCode                     ds.w    1                ; offset: $16 (22)
  2612. reserved                 ds.l    2                ; offset: $18 (24)
  2613. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2614. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2615. callID                     ds.l    1                ; offset: $26 (38)
  2616. identity                 ds.l    1                ; offset: $2A (42)
  2617. gReserved1                 ds.l    1                ; offset: $2E (46)
  2618. gReserved2                 ds.l    1                ; offset: $32 (50)
  2619. gReserved3                 ds.l    1                ; offset: $36 (54)
  2620. clientData                 ds.l    1                ; offset: $3A (58)
  2621. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  2622. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminate between dup catalog names 
  2623. addToOCESetup             ds.b    1                ; offset: $4A (74)        ;   --> add this catalog to OCE Setup List 
  2624. padByte                     ds.b    1                ; offset: $4B (75)
  2625. directoryRecordCID         ds        CreationID        ; offset: $4C (76)        ;  <--  creationID for the catalog record 
  2626. sizeof                     EQU *                    ; size:   $54 (84)
  2627.                         ENDR
  2628. ;
  2629. ;DirAddADAPDirectory:
  2630. ;The catalog specified by 'directoryName' and 'discriminator' will be
  2631. ;added to the list of catalogs maintained by the Toolbox. Once added,
  2632. ;the catalog is available across boots, until the catalog is removed
  2633. ;explicitly through a DirRemoveADAPDirectory call.
  2634. ;If 'serverHint' is not nil, the address provided will be used
  2635. ;to contact a PathFinder for the catalog specified.
  2636. ;If 'serverHint' is nil or does not point to a valid PathFinder server
  2637. ;for that catalog, this call will fail.
  2638. ;If 'addToOCESetup' is true, the catalog will be automatically added to the setup
  2639. ;catalog list and will be visible through EnumerateDirectories calls and
  2640. ;also a creationID to the directoryRecord will be returned.
  2641. ;If this parameter is set to 'false', catalog will be added to temprary list
  2642. ;and will be available for making other catalog service calls. The catalogs
  2643. ;which are not in the setup  list will not be visible through
  2644. ;EnumerateDirectories call.
  2645. ;
  2646. DirAddADAPDirectoryPB    RECORD 0
  2647. qLink                     ds.l    1                ; offset: $0 (0)
  2648. reserved1                 ds.l    1                ; offset: $4 (4)
  2649. reserved2                 ds.l    1                ; offset: $8 (8)
  2650. ioCompletion             ds.l    1                ; offset: $C (12)
  2651. ioResult                 ds.w    1                ; offset: $10 (16)
  2652. saveA5                     ds.l    1                ; offset: $12 (18)
  2653. reqCode                     ds.w    1                ; offset: $16 (22)
  2654. reserved                 ds.l    2                ; offset: $18 (24)
  2655. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2656. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2657. callID                     ds.l    1                ; offset: $26 (38)
  2658. identity                 ds.l    1                ; offset: $2A (42)
  2659. gReserved1                 ds.l    1                ; offset: $2E (46)
  2660. gReserved2                 ds.l    1                ; offset: $32 (50)
  2661. gReserved3                 ds.l    1                ; offset: $36 (54)
  2662. clientData                 ds.l    1                ; offset: $3A (58)
  2663. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  2664. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminate between dup catalog names 
  2665. addToOCESetup             ds.b    1                ; offset: $4A (74)        ;   --> add this catalog to OCE Setup 
  2666. padByte                     ds.b    1                ; offset: $4B (75)
  2667. directoryRecordCID         ds        CreationID        ; offset: $4C (76)        ;  <--  creationID for the catalog record 
  2668. sizeof                     EQU *                    ; size:   $54 (84)
  2669.                         ENDR
  2670. ;
  2671. ;GetDirectoryInfo:
  2672. ;DirGetDirectoryInfo will do:
  2673. ;
  2674. ;If a 'dsRefNum' is non-Zero, the catalog information for
  2675. ;    the corresponding  PAB will be  returned.
  2676. ; If 'dsRefNum' is zero and 'serverHint' is non-zero, If the
  2677. ; 'serverHint' points to a valid ADAP Catalog Server(Path Finder),
  2678. ; the catalog information (i.e. directoryName, discriminator, features)
  2679. ; for that catalog will be returned.
  2680. ;    If a  valid catalog name and discriminator are provided
  2681. ;    features (Set of capability flags) for that catalog will be returned.
  2682. ;
  2683. DirGetDirectoryInfoPB    RECORD 0
  2684. qLink                     ds.l    1                ; offset: $0 (0)
  2685. reserved1                 ds.l    1                ; offset: $4 (4)
  2686. reserved2                 ds.l    1                ; offset: $8 (8)
  2687. ioCompletion             ds.l    1                ; offset: $C (12)
  2688. ioResult                 ds.w    1                ; offset: $10 (16)
  2689. saveA5                     ds.l    1                ; offset: $12 (18)
  2690. reqCode                     ds.w    1                ; offset: $16 (22)
  2691. reserved                 ds.l    2                ; offset: $18 (24)
  2692. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2693. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2694. callID                     ds.l    1                ; offset: $26 (38)
  2695. identity                 ds.l    1                ; offset: $2A (42)
  2696. gReserved1                 ds.l    1                ; offset: $2E (46)
  2697. gReserved2                 ds.l    1                ; offset: $32 (50)
  2698. gReserved3                 ds.l    1                ; offset: $36 (54)
  2699. clientData                 ds.l    1                ; offset: $3A (58)
  2700. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  2701. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;  <--> descriminate between dup catalog names 
  2702. features                 ds.l    1                ; offset: $4A (74)        ;  <--  capability bit flags 
  2703. sizeof                     EQU *                    ; size:   $4E (78)
  2704.                         ENDR
  2705. ;
  2706. ; * Note on Access Controls:
  2707. ; * Access control is based on a list model.
  2708. ; * You can get access controls list which gives dsObject and accMask for each dsObject.
  2709. ; * GetAccessControl can be limited to currently supplied identity by setting forCurrentUserOnly.
  2710. ; * There are special DSObjects are defined in ADASTypes.h for each of the category
  2711. ; * supported in ADAS Catalogs. (kOwner, kFriends, kAuthenticatedToCluster, 
  2712. ; * kAuthenticatedToDirectory, kGuest) and DUGetActlDSSpec call can be used
  2713. ; * to obtain appropraiate DSSpec before making set calls to ADAS catalogs.
  2714. ; *
  2715. ;
  2716. ;
  2717. ;    GetDNodeAccessControlGet:
  2718. ;    This call can be done to get back access control list for a DNode.
  2719. ;    pRLI -> RLI of the DNode whose access control list is sought
  2720. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  2721. ;                      the identity parameter will be returned other wise entire list
  2722. ;                      will be returned.
  2723. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  2724. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  2725. ;                              results.
  2726. ;                              
  2727. ;    The results will be collected in the 'getBuffer' supplied by the user.
  2728. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  2729. ;     
  2730. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  2731. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  2732. ;    
  2733. ;    Results returned for each DSObject will contain DSSpecPtr and three sets of access mask. 
  2734. ;
  2735. ;
  2736. DirGetDNodeAccessControlGetPB RECORD 0
  2737. qLink                     ds.l    1                ; offset: $0 (0)
  2738. reserved1                 ds.l    1                ; offset: $4 (4)
  2739. reserved2                 ds.l    1                ; offset: $8 (8)
  2740. ioCompletion             ds.l    1                ; offset: $C (12)
  2741. ioResult                 ds.w    1                ; offset: $10 (16)
  2742. saveA5                     ds.l    1                ; offset: $12 (18)
  2743. reqCode                     ds.w    1                ; offset: $16 (22)
  2744. reserved                 ds.l    2                ; offset: $18 (24)
  2745. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2746. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2747. callID                     ds.l    1                ; offset: $26 (38)
  2748. identity                 ds.l    1                ; offset: $2A (42)
  2749. gReserved1                 ds.l    1                ; offset: $2E (46)
  2750. gReserved2                 ds.l    1                ; offset: $32 (50)
  2751. gReserved3                 ds.l    1                ; offset: $36 (54)
  2752. clientData                 ds.l    1                ; offset: $3A (58)
  2753. pRLI                     ds.l    1                ; offset: $3E (62)        ;   -> RLI of the cluster whose access control list is sought  
  2754. bReserved                 ds.l    1                ; offset: $42 (66)        ;   -- unused 
  2755. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2756. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2757. eResreved                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2758. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2759. filler1                     ds.b    1                ; offset: $53 (83)
  2760. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2761. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the DsObject specified in starting point 
  2762. filler2                     ds.b    1                ; offset: $59 (89)
  2763. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  2764. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  2765. sizeof                     EQU *                    ; size:   $62 (98)
  2766.                         ENDR
  2767. ;  The Access Control call-back function is defined as follows: 
  2768. ; typedef ForEachDNodeAccessControlUPP     ForEachDNodeAccessControl
  2769.  
  2770. ;
  2771. ;    GetDNodeAccessControlParse:
  2772. ;    After an GetDNodeAccessControlGet call has completed, 
  2773. ;    call GetDNodeAccessControlParse to parse through the buffer that
  2774. ;    that was filled in GetDNodeAccessControlGet.
  2775. ;    
  2776. ;    'eachObject' will be called each time to return to the client a
  2777. ;    DsObject and a set of three accMasks (three long words) for that object.
  2778. ;    Acceesmasks returned apply to the dsObject in the callback :
  2779. ;    1. Currently Active Access mask for the specified DNode.
  2780. ;    2. Default Access mask for any Record in the DNode
  2781. ;    3. Default Access mask for any Attribute in the DNode
  2782. ;    The clientData parameter that you pass in the parameter block will be passed
  2783. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  2784. ;    to allow you some way to match the call-back to the original call (for
  2785. ;    example, you make more then one aysynchronous GetDNodeAccessControlGet calls and you want to
  2786. ;    associate returned results in some way).
  2787. ;    
  2788. ;    The client should return FALSE from 'eachObject' to continue
  2789. ;    processing of the GetDNodeAccessControlParse request.  Returning TRUE will
  2790. ;    terminate the GetDNodeAccessControlParse request.
  2791. ;
  2792. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  2793. ;    of execution as the thread that made the GetDNodeAccessControlParse call.  That means that the
  2794. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  2795. ;    that were in effect when the call was made.  Because of this, the call-back
  2796. ;    routine has the same restrictions as the caller of GetDNodeAccessControlParse:
  2797. ;    if GetDNodeAccessControlParse was not called from interrupt level, then the call-
  2798. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  2799. ;    like a ioCompletion except that A5 will be preserved for the application.
  2800. ;
  2801. ;
  2802. ;
  2803. DirGetDNodeAccessControlParsePB RECORD 0
  2804. qLink                     ds.l    1                ; offset: $0 (0)
  2805. reserved1                 ds.l    1                ; offset: $4 (4)
  2806. reserved2                 ds.l    1                ; offset: $8 (8)
  2807. ioCompletion             ds.l    1                ; offset: $C (12)
  2808. ioResult                 ds.w    1                ; offset: $10 (16)
  2809. saveA5                     ds.l    1                ; offset: $12 (18)
  2810. reqCode                     ds.w    1                ; offset: $16 (22)
  2811. reserved                 ds.l    2                ; offset: $18 (24)
  2812. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2813. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2814. callID                     ds.l    1                ; offset: $26 (38)
  2815. identity                 ds.l    1                ; offset: $2A (42)
  2816. gReserved1                 ds.l    1                ; offset: $2E (46)
  2817. gReserved2                 ds.l    1                ; offset: $32 (50)
  2818. gReserved3                 ds.l    1                ; offset: $36 (54)
  2819. clientData                 ds.l    1                ; offset: $3A (58)
  2820. pRLI                     ds.l    1                ; offset: $3E (62)        ;   -> RLI of the cluster  
  2821. bReserved                 ds.l    1                ; offset: $42 (66)        ;   -- unused 
  2822. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2823. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2824. eachObject                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2825. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2826. filler1                     ds.b    1                ; offset: $53 (83)
  2827. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2828. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  2829. filler2                     ds.b    1                ; offset: $59 (89)
  2830. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  2831. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  2832. sizeof                     EQU *                    ; size:   $62 (98)
  2833.                         ENDR
  2834. ;
  2835. ;    GetRecordAccessControlGet:
  2836. ;    This call can be done to get back access control list for a RecordID.
  2837. ;    aRecord -> RecordID to which access control list is sought
  2838. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  2839. ;                      the identity parameter will be returned other wise entire list
  2840. ;                      will be returned.
  2841. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  2842. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  2843. ;                              results.
  2844. ;                              
  2845. ;    The results will be collected in the 'getBuffer' supplied by the user.
  2846. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  2847. ;     
  2848. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  2849. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  2850. ;    
  2851. ;    Results returned for each DSObject will contain DSSpecPtr and accMask. 
  2852. ;
  2853. ;
  2854. DirGetRecordAccessControlGetPB RECORD 0
  2855. qLink                     ds.l    1                ; offset: $0 (0)
  2856. reserved1                 ds.l    1                ; offset: $4 (4)
  2857. reserved2                 ds.l    1                ; offset: $8 (8)
  2858. ioCompletion             ds.l    1                ; offset: $C (12)
  2859. ioResult                 ds.w    1                ; offset: $10 (16)
  2860. saveA5                     ds.l    1                ; offset: $12 (18)
  2861. reqCode                     ds.w    1                ; offset: $16 (22)
  2862. reserved                 ds.l    2                ; offset: $18 (24)
  2863. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2864. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2865. callID                     ds.l    1                ; offset: $26 (38)
  2866. identity                 ds.l    1                ; offset: $2A (42)
  2867. gReserved1                 ds.l    1                ; offset: $2E (46)
  2868. gReserved2                 ds.l    1                ; offset: $32 (50)
  2869. gReserved3                 ds.l    1                ; offset: $36 (54)
  2870. clientData                 ds.l    1                ; offset: $3A (58)
  2871. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> RecordID to which access control list is sought list is sought  
  2872. bReserved                 ds.l    1                ; offset: $42 (66)        ;   -- unused 
  2873. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2874. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2875. eResreved                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2876. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2877. filler1                     ds.b    1                ; offset: $53 (83)
  2878. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2879. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  2880. filler2                     ds.b    1                ; offset: $59 (89)
  2881. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  2882. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  2883. sizeof                     EQU *                    ; size:   $62 (98)
  2884.                         ENDR
  2885. ;  The Access Control call-back function is defined as follows: 
  2886. ; typedef ForEachRecordAccessControlUPP  ForEachRecordAccessControl
  2887.  
  2888. ;
  2889. ;    GetRecordAccessControlParse:
  2890. ;    After an GetRecordAccessControlGet call has completed, 
  2891. ;    call GetRecordAccessControlParse to parse through the buffer that
  2892. ;    that was filled in GetRecordAccessControlGet.
  2893. ;    
  2894. ;    'eachObject' will be called each time to return to the client a
  2895. ;    DsObject and a set of three accMasks (three long words) for that object.
  2896. ;    Acceesmasks returned apply to the dsObject in the callback :
  2897. ;    1. Active Access mask for the DNode Containing the Record.
  2898. ;    2. Active Access mask for the Record specified.
  2899. ;    3. Defualt Access mask for Attributes in the record.
  2900. ;    The clientData parameter that you pass in the parameter block will be passed
  2901. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  2902. ;    to allow you some way to match the call-back to the original call (for
  2903. ;    example, you make more then one aysynchronous GetRecordAccessControlGet calls and you want to
  2904. ;    associate returned results in some way).
  2905. ;    
  2906. ;    The client should return FALSE from 'eachObject' to continue
  2907. ;    processing of the GetRecordAccessControlParse request.  Returning TRUE will
  2908. ;    terminate the GetRecordAccessControlParse request.
  2909. ;
  2910. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  2911. ;    of execution as the thread that made the GetRecordAccessControlParse call.  That means that the
  2912. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  2913. ;    that were in effect when the call was made.  Because of this, the call-back
  2914. ;    routine has the same restrictions as the caller of GetRecordAccessControlParse:
  2915. ;    if GetRecordAccessControlParse was not called from interrupt level, then the call-
  2916. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  2917. ;    like a ioCompletion except that A5 will be preserved for the application.
  2918. ;
  2919. ;
  2920. ;
  2921. DirGetRecordAccessControlParsePB RECORD 0
  2922. qLink                     ds.l    1                ; offset: $0 (0)
  2923. reserved1                 ds.l    1                ; offset: $4 (4)
  2924. reserved2                 ds.l    1                ; offset: $8 (8)
  2925. ioCompletion             ds.l    1                ; offset: $C (12)
  2926. ioResult                 ds.w    1                ; offset: $10 (16)
  2927. saveA5                     ds.l    1                ; offset: $12 (18)
  2928. reqCode                     ds.w    1                ; offset: $16 (22)
  2929. reserved                 ds.l    2                ; offset: $18 (24)
  2930. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2931. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2932. callID                     ds.l    1                ; offset: $26 (38)
  2933. identity                 ds.l    1                ; offset: $2A (42)
  2934. gReserved1                 ds.l    1                ; offset: $2E (46)
  2935. gReserved2                 ds.l    1                ; offset: $32 (50)
  2936. gReserved3                 ds.l    1                ; offset: $36 (54)
  2937. clientData                 ds.l    1                ; offset: $3A (58)
  2938. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> RecordID to which access control list is sought list is sought  
  2939. bReserved                 ds.l    1                ; offset: $42 (66)        ;   -- unused 
  2940. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2941. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2942. eachObject                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2943. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2944. filler1                     ds.b    1                ; offset: $53 (83)
  2945. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2946. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  2947. filler2                     ds.b    1                ; offset: $59 (89)
  2948. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  2949. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  2950. sizeof                     EQU *                    ; size:   $62 (98)
  2951.                         ENDR
  2952. ;
  2953. ;    GetAttributeAccessControlGet:
  2954. ;    This call can be done to get back access control list for a attributeType with in a RecordID.
  2955. ;    aRecord -> RecordID to which access control list is sought
  2956. ;    aType    -> Attribute Type to which access controls are sought
  2957. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  2958. ;                      the identity parameter will be returned other wise entire list
  2959. ;                      will be returned.
  2960. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  2961. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  2962. ;                              results.
  2963. ;                              
  2964. ;    The results will be collected in the 'getBuffer' supplied by the user.
  2965. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  2966. ;     
  2967. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  2968. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  2969. ;    
  2970. ;    Results returned for each DSObject will contain DSSpecPtr and accMask. 
  2971. ;
  2972. ;
  2973. DirGetAttributeAccessControlGetPB RECORD 0
  2974. qLink                     ds.l    1                ; offset: $0 (0)
  2975. reserved1                 ds.l    1                ; offset: $4 (4)
  2976. reserved2                 ds.l    1                ; offset: $8 (8)
  2977. ioCompletion             ds.l    1                ; offset: $C (12)
  2978. ioResult                 ds.w    1                ; offset: $10 (16)
  2979. saveA5                     ds.l    1                ; offset: $12 (18)
  2980. reqCode                     ds.w    1                ; offset: $16 (22)
  2981. reserved                 ds.l    2                ; offset: $18 (24)
  2982. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  2983. dsRefNum                 ds.w    1                ; offset: $24 (36)
  2984. callID                     ds.l    1                ; offset: $26 (38)
  2985. identity                 ds.l    1                ; offset: $2A (42)
  2986. gReserved1                 ds.l    1                ; offset: $2E (46)
  2987. gReserved2                 ds.l    1                ; offset: $32 (50)
  2988. gReserved3                 ds.l    1                ; offset: $36 (54)
  2989. clientData                 ds.l    1                ; offset: $3A (58)
  2990. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> RecordID to which access control list is sought list is sought  
  2991. aType                     ds.l    1                ; offset: $42 (66)        ;   -> Attribute Type to which access controls are sought          
  2992. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  2993. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  2994. eResreved                 ds.l    1                ; offset: $4E (78)        ;  --> 
  2995. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  2996. filler1                     ds.b    1                ; offset: $53 (83)
  2997. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  2998. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  2999. filler2                     ds.b    1                ; offset: $59 (89)
  3000. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  3001. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  3002. sizeof                     EQU *                    ; size:   $62 (98)
  3003.                         ENDR
  3004. ;  The Access Control call-back function is defined as follows: 
  3005. ; typedef ForEachAttributeAccessControlUPP  ForEachAttributeAccessControl
  3006.  
  3007. ;
  3008. ;    GetAttributeAccessControlParse:
  3009. ;    After an GetAttributeAccessControlGet call has completed, 
  3010. ;    call GetAttributeAccessControlParse to parse through the buffer that
  3011. ;    that was filled in GetAttributeAccessControlGet.
  3012. ;    
  3013. ;    'eachObject' will be called each time to return to the client a
  3014. ;    DsObject and a set of three accMasks (three long words) for that object.
  3015. ;    Acceesmasks returned apply to the dsObject in the callback :
  3016. ;    1. Active Access mask for the DNode Containing the Attribute.
  3017. ;    2. Active Access mask for the Record in the Containing the Attribute.
  3018. ;    3. Active Access mask for the specified Attribute.
  3019. ;    The clientData parameter that you pass in the parameter block will be passed
  3020. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  3021. ;    to allow you some way to match the call-back to the original call (for
  3022. ;    example, you make more then one aysynchronous GetAttributeAccessControlGet calls and you want to
  3023. ;    associate returned results in some way).
  3024. ;    
  3025. ;    The client should return FALSE from 'eachObject' to continue
  3026. ;    processing of the GetAttributeAccessControlParse request.  Returning TRUE will
  3027. ;    terminate the GetAttributeAccessControlParse request.
  3028. ;
  3029. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  3030. ;    of execution as the thread that made the GetAttributeAccessControlParse call.  That means that the
  3031. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  3032. ;    that were in effect when the call was made.  Because of this, the call-back
  3033. ;    routine has the same restrictions as the caller of GetAttributeAccessControlParse:
  3034. ;    if GetAttributeAccessControlParse was not called from interrupt level, then the call-
  3035. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  3036. ;    like a ioCompletion except that A5 will be preserved for the application.
  3037. ;
  3038. ;
  3039. ;
  3040. DirGetAttributeAccessControlParsePB RECORD 0
  3041. qLink                     ds.l    1                ; offset: $0 (0)
  3042. reserved1                 ds.l    1                ; offset: $4 (4)
  3043. reserved2                 ds.l    1                ; offset: $8 (8)
  3044. ioCompletion             ds.l    1                ; offset: $C (12)
  3045. ioResult                 ds.w    1                ; offset: $10 (16)
  3046. saveA5                     ds.l    1                ; offset: $12 (18)
  3047. reqCode                     ds.w    1                ; offset: $16 (22)
  3048. reserved                 ds.l    2                ; offset: $18 (24)
  3049. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3050. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3051. callID                     ds.l    1                ; offset: $26 (38)
  3052. identity                 ds.l    1                ; offset: $2A (42)
  3053. gReserved1                 ds.l    1                ; offset: $2E (46)
  3054. gReserved2                 ds.l    1                ; offset: $32 (50)
  3055. gReserved3                 ds.l    1                ; offset: $36 (54)
  3056. clientData                 ds.l    1                ; offset: $3A (58)
  3057. aRecord                     ds.l    1                ; offset: $3E (62)        ;   -> RecordID to which access control list is sought list is sought  
  3058. aType                     ds.l    1                ; offset: $42 (66)        ;   -> Attribute Type to which access controls are sought          
  3059. cReserved                 ds.l    1                ; offset: $46 (70)        ;   -- unused 
  3060. dReserved                 ds.l    1                ; offset: $4A (74)        ;   -- unused 
  3061. eachObject                 ds.l    1                ; offset: $4E (78)        ;  --> 
  3062. forCurrentUserOnly         ds.b    1                ; offset: $52 (82)        ;  -->  
  3063. filler1                     ds.b    1                ; offset: $53 (83)
  3064. startingPoint             ds.l    1                ; offset: $54 (84)        ;  --> starting Point 
  3065. includeStartingPoint     ds.b    1                ; offset: $58 (88)        ;  --> if true return the record specified in starting point 
  3066. filler2                     ds.b    1                ; offset: $59 (89)
  3067. getBuffer                 ds.l    1                ; offset: $5A (90)        ;     -> 
  3068. getBufferSize             ds.l    1                ; offset: $5E (94)        ;   -> 
  3069. sizeof                     EQU *                    ; size:   $62 (98)
  3070.                         ENDR
  3071. ;
  3072. ;MapPathNameToDNodeNumber:
  3073. ;This call maps a given PathName within a catalog to its DNodeNumber.
  3074. ;
  3075. DirMapPathNameToDNodeNumberPB RECORD 0
  3076. qLink                     ds.l    1                ; offset: $0 (0)
  3077. reserved1                 ds.l    1                ; offset: $4 (4)
  3078. reserved2                 ds.l    1                ; offset: $8 (8)
  3079. ioCompletion             ds.l    1                ; offset: $C (12)
  3080. ioResult                 ds.w    1                ; offset: $10 (16)
  3081. saveA5                     ds.l    1                ; offset: $12 (18)
  3082. reqCode                     ds.w    1                ; offset: $16 (22)
  3083. reserved                 ds.l    2                ; offset: $18 (24)
  3084. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3085. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3086. callID                     ds.l    1                ; offset: $26 (38)
  3087. identity                 ds.l    1                ; offset: $2A (42)
  3088. gReserved1                 ds.l    1                ; offset: $2E (46)
  3089. gReserved2                 ds.l    1                ; offset: $32 (50)
  3090. gReserved3                 ds.l    1                ; offset: $36 (54)
  3091. clientData                 ds.l    1                ; offset: $3A (58)
  3092. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  3093. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminator 
  3094. dNodeNumber                 ds.l    1                ; offset: $4A (74)        ;  <--  dNodenumber to the path 
  3095. path                     ds.l    1                ; offset: $4E (78)        ;   --> Path Name to be mapped 
  3096. sizeof                     EQU *                    ; size:   $52 (82)
  3097.                         ENDR
  3098. ;
  3099. ;PathName in the path field will be mapped to the cooresponding dNodeNumber and
  3100. ;returned in the DNodeNumber field. directoryName and descriminator Fields are
  3101. ;ignored. DSRefNum is used to identify the catalog.
  3102. ;
  3103. ;
  3104. ;MapDNodeNumberToPathName:
  3105. ;This call will map a given DNodeNumber with in a catalog to the
  3106. ;corresponding PathName.
  3107. ;
  3108. DirMapDNodeNumberToPathNamePB RECORD 0
  3109. qLink                     ds.l    1                ; offset: $0 (0)
  3110. reserved1                 ds.l    1                ; offset: $4 (4)
  3111. reserved2                 ds.l    1                ; offset: $8 (8)
  3112. ioCompletion             ds.l    1                ; offset: $C (12)
  3113. ioResult                 ds.w    1                ; offset: $10 (16)
  3114. saveA5                     ds.l    1                ; offset: $12 (18)
  3115. reqCode                     ds.w    1                ; offset: $16 (22)
  3116. reserved                 ds.l    2                ; offset: $18 (24)
  3117. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3118. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3119. callID                     ds.l    1                ; offset: $26 (38)
  3120. identity                 ds.l    1                ; offset: $2A (42)
  3121. gReserved1                 ds.l    1                ; offset: $2E (46)
  3122. gReserved2                 ds.l    1                ; offset: $32 (50)
  3123. gReserved3                 ds.l    1                ; offset: $36 (54)
  3124. clientData                 ds.l    1                ; offset: $3A (58)
  3125. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  3126. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminator 
  3127. dNodeNumber                 ds.l    1                ; offset: $4A (74)        ;   --> dNodenumber to be mapped 
  3128. path                     ds.l    1                ; offset: $4E (78)        ;  <--  Packed Path Name returned 
  3129. lengthOfPathName         ds.w    1                ; offset: $52 (82)        ;   --> length of packed pathName structure
  3130. sizeof                     EQU *                    ; size:   $54 (84)
  3131.                         ENDR
  3132. ;
  3133. ;dNodeNumber in the DNodeNumber field will be mapped to the cooresponding
  3134. ;pathName and returned in the PackedPathName field.
  3135. ;lengthOfPathName is to be set the length of pathName structure.
  3136. ;If length of PackedPathName is larger then the lengthOfPathName, kOCEMoreData
  3137. ;OSErr will be returned.
  3138. ;
  3139. ;
  3140. ;GetLocalNetworkSpec:
  3141. ;This call will return the Local NetworkSpec. Client should supply
  3142. ;an RString big enough to hold the NetworkSpec.
  3143. ;
  3144. DirGetLocalNetworkSpecPB RECORD 0
  3145. qLink                     ds.l    1                ; offset: $0 (0)
  3146. reserved1                 ds.l    1                ; offset: $4 (4)
  3147. reserved2                 ds.l    1                ; offset: $8 (8)
  3148. ioCompletion             ds.l    1                ; offset: $C (12)
  3149. ioResult                 ds.w    1                ; offset: $10 (16)
  3150. saveA5                     ds.l    1                ; offset: $12 (18)
  3151. reqCode                     ds.w    1                ; offset: $16 (22)
  3152. reserved                 ds.l    2                ; offset: $18 (24)
  3153. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3154. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3155. callID                     ds.l    1                ; offset: $26 (38)
  3156. identity                 ds.l    1                ; offset: $2A (42)
  3157. gReserved1                 ds.l    1                ; offset: $2E (46)
  3158. gReserved2                 ds.l    1                ; offset: $32 (50)
  3159. gReserved3                 ds.l    1                ; offset: $36 (54)
  3160. clientData                 ds.l    1                ; offset: $3A (58)
  3161. directoryName             ds.l    1                ; offset: $3E (62)        ;   --> catalog name 
  3162. discriminator             ds        DirDiscriminator ; offset: $42 (66)        ;   --> discriminator 
  3163. networkSpec                 ds.l    1                ; offset: $4A (74)        ;  <--  NetworkSpec 
  3164. sizeof                     EQU *                    ; size:   $4E (78)
  3165.                         ENDR
  3166. ;
  3167. ;PathName in the path field must be set to nil. internetName should be large
  3168. ;enough to hold the internetName. InterNetname returned indicates path finder's
  3169. ;local internet (configured by administrator).
  3170. ;
  3171. ;
  3172. ;GetDNodeInfo:
  3173. ;This call will return the information (internetName and descriptor)
  3174. ;for the given RLI of a DNode.
  3175. ;
  3176. DirGetDNodeInfoPB        RECORD 0
  3177. qLink                     ds.l    1                ; offset: $0 (0)
  3178. reserved1                 ds.l    1                ; offset: $4 (4)
  3179. reserved2                 ds.l    1                ; offset: $8 (8)
  3180. ioCompletion             ds.l    1                ; offset: $C (12)
  3181. ioResult                 ds.w    1                ; offset: $10 (16)
  3182. saveA5                     ds.l    1                ; offset: $12 (18)
  3183. reqCode                     ds.w    1                ; offset: $16 (22)
  3184. reserved                 ds.l    2                ; offset: $18 (24)
  3185. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3186. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3187. callID                     ds.l    1                ; offset: $26 (38)
  3188. identity                 ds.l    1                ; offset: $2A (42)
  3189. gReserved1                 ds.l    1                ; offset: $2E (46)
  3190. gReserved2                 ds.l    1                ; offset: $32 (50)
  3191. gReserved3                 ds.l    1                ; offset: $36 (54)
  3192. clientData                 ds.l    1                ; offset: $3A (58)
  3193. pRLI                     ds.l    1                ; offset: $3E (62)        ;   --> packed RLI whose info is requested 
  3194. descriptor                 ds.l    1                ; offset: $42 (66)        ;  <--  dNode descriptor 
  3195. networkSpec                 ds.l    1                ; offset: $46 (70)        ;  <--  cluster's networkSpec if kIsCluster 
  3196. sizeof                     EQU *                    ; size:   $4A (74)
  3197.                         ENDR
  3198. ;
  3199. ;If DnodeNumber is set to a non zero value, path should be set to nil.
  3200. ;if DnodeNumber is set to zero, pathName should point to a packed path name.
  3201. ;internetName should be large enough to hold
  3202. ;the internetName. (If the internetName is same as the one got by
  3203. ;GetLocalInternetName call, it indicates cluster is reachable  without
  3204. ;forwarders, --> Tell me if I am wrong)
  3205. ;
  3206. ;
  3207. ;DirCreatePersonalDirectory:
  3208. ;A new  personal catalog can be created by specifying an FSSpec for
  3209. ;the file. If a file already exists dupFNErr will be returned. This call is
  3210. ;supported 'synchronous' mode only.
  3211. ;
  3212. DirCreatePersonalDirectoryPB RECORD 0
  3213. qLink                     ds.l    1                ; offset: $0 (0)
  3214. reserved1                 ds.l    1                ; offset: $4 (4)
  3215. reserved2                 ds.l    1                ; offset: $8 (8)
  3216. ioCompletion             ds.l    1                ; offset: $C (12)
  3217. ioResult                 ds.w    1                ; offset: $10 (16)
  3218. saveA5                     ds.l    1                ; offset: $12 (18)
  3219. reqCode                     ds.w    1                ; offset: $16 (22)
  3220. reserved                 ds.l    2                ; offset: $18 (24)
  3221. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3222. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3223. callID                     ds.l    1                ; offset: $26 (38)
  3224. identity                 ds.l    1                ; offset: $2A (42)
  3225. gReserved1                 ds.l    1                ; offset: $2E (46)
  3226. gReserved2                 ds.l    1                ; offset: $32 (50)
  3227. gReserved3                 ds.l    1                ; offset: $36 (54)
  3228. clientData                 ds.l    1                ; offset: $3A (58)
  3229. fsSpec                     ds.l    1                ; offset: $3E (62)        ;   --> FSSpec for the Personal Catalog 
  3230. fdType                     ds.l    1                ; offset: $42 (66)        ;   --> file type for the Personal Catalog 
  3231. fdCreator                 ds.l    1                ; offset: $46 (70)        ;   --> file creator for the Personal Catalog 
  3232. sizeof                     EQU *                    ; size:   $4A (74)
  3233.                         ENDR
  3234. ;
  3235. ;DirOpenPersonalDirectory:
  3236. ;An existing personal catalog can be opened using this call.
  3237. ;User can specify the personal catalog by FSSpec for the AddressBook file.
  3238. ;'accessRequested' field specifies open permissions. 'fsRdPerm'  & 'fsRdWrPerm'
  3239. ;are the only accepted open modes for the address book.
  3240. ;When the call completes successfully, a dsRefNum will be returned. The 'dsRefNum'
  3241. ;field is in the DSParamBlockHeader. In addittion 'accessGranted' indicates
  3242. ;actual permission with personal catalog is opened and 'features' indicate the capabilty flags
  3243. ;associated with the personal catalog.
  3244. ;This call is supported 'synchronous' mode only.
  3245. ;
  3246. DirOpenPersonalDirectoryPB RECORD 0
  3247. qLink                     ds.l    1                ; offset: $0 (0)
  3248. reserved1                 ds.l    1                ; offset: $4 (4)
  3249. reserved2                 ds.l    1                ; offset: $8 (8)
  3250. ioCompletion             ds.l    1                ; offset: $C (12)
  3251. ioResult                 ds.w    1                ; offset: $10 (16)
  3252. saveA5                     ds.l    1                ; offset: $12 (18)
  3253. reqCode                     ds.w    1                ; offset: $16 (22)
  3254. reserved                 ds.l    2                ; offset: $18 (24)
  3255. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3256. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3257. callID                     ds.l    1                ; offset: $26 (38)
  3258. identity                 ds.l    1                ; offset: $2A (42)
  3259. gReserved1                 ds.l    1                ; offset: $2E (46)
  3260. gReserved2                 ds.l    1                ; offset: $32 (50)
  3261. gReserved3                 ds.l    1                ; offset: $36 (54)
  3262. clientData                 ds.l    1                ; offset: $3A (58)
  3263. fsSpec                     ds.l    1                ; offset: $3E (62)        ;   --> Open an existing Personal Catalog 
  3264. accessRequested             ds.b    1                ; offset: $42 (66)        ;   --> Open: permissions Requested(byte)
  3265. accessGranted             ds.b    1                ; offset: $43 (67)        ;   <-- Open: permissions (byte) (Granted)
  3266. features                 ds.l    1                ; offset: $44 (68)        ;  <--  features for Personal Catalog 
  3267. sizeof                     EQU *                    ; size:   $48 (72)
  3268.                         ENDR
  3269. ;
  3270. ;DirClosePersonalDirectory: This call lets a client close AddressBook opened by DirOpenPersonalDirectory.
  3271. ;The Personal Catalog specified by the 'dsRefNum' will be closed.
  3272. ;This call is supported 'synchronous' mode only.
  3273. ;
  3274. DirClosePersonalDirectoryPB RECORD 0
  3275. qLink                     ds.l    1                ; offset: $0 (0)
  3276. reserved1                 ds.l    1                ; offset: $4 (4)
  3277. reserved2                 ds.l    1                ; offset: $8 (8)
  3278. ioCompletion             ds.l    1                ; offset: $C (12)
  3279. ioResult                 ds.w    1                ; offset: $10 (16)
  3280. saveA5                     ds.l    1                ; offset: $12 (18)
  3281. reqCode                     ds.w    1                ; offset: $16 (22)
  3282. reserved                 ds.l    2                ; offset: $18 (24)
  3283. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3284. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3285. callID                     ds.l    1                ; offset: $26 (38)
  3286. identity                 ds.l    1                ; offset: $2A (42)
  3287. gReserved1                 ds.l    1                ; offset: $2E (46)
  3288. gReserved2                 ds.l    1                ; offset: $32 (50)
  3289. gReserved3                 ds.l    1                ; offset: $36 (54)
  3290. clientData                 ds.l    1                ; offset: $3A (58)
  3291. sizeof                     EQU *                    ; size:   $3E (62)
  3292.                         ENDR
  3293. ;
  3294. ;DirMakePersonalDirectoryRLI: With this call a client can make an RLI
  3295. ;for a Personal Catalog opened by DirOpenPersonalDirectory Call.
  3296. ;A packed RLI is created for the Personal Catalog specified by the 'dsRefNum'.
  3297. ;If a client has a need to make the AddressBook reference to persistent
  3298. ;acrross boots it should make use of this call. In the current implementaion
  3299. ;PackedRLI has an embeeded System7.0 'alias'. If in later time
  3300. ;If client has a need to make reference to the AddressBook, it must use
  3301. ;ADAPLibrary call 'DUExtractAlias' and resole the 'alias' to 'FSSpec' and
  3302. ;make DirOpenPersonalDirectory call to get a 'dsRefNum'.
  3303. ;  'fromFSSpec'            FSPecPtr from which relative alias to be created. If nil,
  3304. ;                        absolute alias is created.
  3305. ; 'pRLIBufferSize' indicates the size of buffer pointed by 'pRLI'
  3306. ; 'pRLISize'    indicates the actual length of 'pRLI'. If the call
  3307. ;                        fails with 'kOCEMoreData' error a client can reissue
  3308. ;                    this call with a larger buffer of this length.
  3309. ;  'pRLI' is pointer to the buffer in which 'PackedRLI' is
  3310. ;  returned.
  3311. ;This call is supported in 'synchronous' mode only.
  3312. ;
  3313. DirMakePersonalDirectoryRLIPB RECORD 0
  3314. qLink                     ds.l    1                ; offset: $0 (0)
  3315. reserved1                 ds.l    1                ; offset: $4 (4)
  3316. reserved2                 ds.l    1                ; offset: $8 (8)
  3317. ioCompletion             ds.l    1                ; offset: $C (12)
  3318. ioResult                 ds.w    1                ; offset: $10 (16)
  3319. saveA5                     ds.l    1                ; offset: $12 (18)
  3320. reqCode                     ds.w    1                ; offset: $16 (22)
  3321. reserved                 ds.l    2                ; offset: $18 (24)
  3322. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3323. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3324. callID                     ds.l    1                ; offset: $26 (38)
  3325. identity                 ds.l    1                ; offset: $2A (42)
  3326. gReserved1                 ds.l    1                ; offset: $2E (46)
  3327. gReserved2                 ds.l    1                ; offset: $32 (50)
  3328. gReserved3                 ds.l    1                ; offset: $36 (54)
  3329. clientData                 ds.l    1                ; offset: $3A (58)
  3330. fromFSSpec                 ds.l    1                ; offset: $3E (62)        ;   --> FSSpec for creating relative alia 
  3331. pRLIBufferSize             ds.w    1                ; offset: $42 (66)        ;   --> Length of 'pRLI' buffer 
  3332. pRLISize                 ds.w    1                ; offset: $44 (68)        ;  <--  Length of actual 'pRLI' 
  3333. pRLI                     ds.l    1                ; offset: $46 (70)        ;  <--  pRLI for the specified AddressBook 
  3334. sizeof                     EQU *                    ; size:   $4A (74)
  3335.                         ENDR
  3336. ;
  3337. ;****************************************************************************
  3338. ;The calls described below apply only for CSAM Drivers:
  3339. ;
  3340. ;The following three calls provide capability to Install/Remove a CSAM at RunTime.
  3341. ;    DirAddDSAM
  3342. ;    DirRemoveDSAM
  3343. ;    DirInstantiateDSAM
  3344. ;
  3345. ;The following two calls provide capability to Install/Remove a CSAM Catalog at RunTime.
  3346. ;    DirAddDSAMDirectory
  3347. ;    DirRemoveDirectory
  3348. ;
  3349. ;DirGetDirectoryIcon call is used by clients to get any special icon associated
  3350. ;with a CSAM catalog.
  3351. ;
  3352. ;****************************************************************************
  3353. ;
  3354. ;
  3355. ;DirAddDSAM: This call can be used to inorm the availability of a CSAM file
  3356. ;after discovering the CSAM file.
  3357. ;    dsamName -> is generic CSAM name e.g. Untitled X.500 directory
  3358. ;    dsamSignature -> could be generic CSAM kind e.g. 'X500'.
  3359. ;    fsSpec -> is the FileSpec for the file containing CSAM resources.
  3360. ;If the call is successfull 'DSAMRecordCID' will be returned. If the
  3361. ;call returns 'daDSAMRecordCIDExists', record was already there and
  3362. ;'dsamRecordCID' will be returned.
  3363. ;This call can be done only in synchronous mode.
  3364. ;
  3365. DirAddDSAMPB            RECORD 0
  3366. qLink                     ds.l    1                ; offset: $0 (0)
  3367. reserved1                 ds.l    1                ; offset: $4 (4)
  3368. reserved2                 ds.l    1                ; offset: $8 (8)
  3369. ioCompletion             ds.l    1                ; offset: $C (12)
  3370. ioResult                 ds.w    1                ; offset: $10 (16)
  3371. saveA5                     ds.l    1                ; offset: $12 (18)
  3372. reqCode                     ds.w    1                ; offset: $16 (22)
  3373. reserved                 ds.l    2                ; offset: $18 (24)
  3374. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3375. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3376. callID                     ds.l    1                ; offset: $26 (38)
  3377. identity                 ds.l    1                ; offset: $2A (42)
  3378. gReserved1                 ds.l    1                ; offset: $2E (46)
  3379. gReserved2                 ds.l    1                ; offset: $32 (50)
  3380. gReserved3                 ds.l    1                ; offset: $36 (54)
  3381. clientData                 ds.l    1                ; offset: $3A (58)
  3382. dsamRecordCID             ds        CreationID        ; offset: $3E (62)        ;  <--  CreationID for the CSAM record 
  3383. dsamName                 ds.l    1                ; offset: $46 (70)        ;   --> CSAM name 
  3384. dsamKind                 ds.l    1                ; offset: $4A (74)        ;   --> CSAM kind 
  3385. fsSpec                     ds.l    1                ; offset: $4E (78)        ;   --> FSSpec for the file containing CSAM 
  3386. sizeof                     EQU *                    ; size:   $52 (82)
  3387.                         ENDR
  3388. ;
  3389. ;DirInstantiateDSAM: This call should be used by the CSAM driver in response
  3390. ;Driver Open call to indicate the toolbox about the availability of the CSAM.
  3391. ;    dsamName -> is generic CSAM name e.g. Untitled X.500 directory
  3392. ;    dsamKind -> could be generic CSAM kind e.g. 'X500'.
  3393. ;    dsamData -> pointer to private DSAMData. This will be paased back to the CSAM
  3394. ;    when the CSAM functions (DSAMDirProc,DSAMDirParseProc, DSAMAuthProc) are called.
  3395. ;    CSAM should already be setup using DirAddDSAM call.
  3396. ;    DSAMDirProc -> This procedure will be called when  any catalog service
  3397. ;    call intended for the CSAM (other then parse calls)
  3398. ;    DSAMDirParseProc -> This procedure will be called when any of the parse calls
  3399. ;    are called.
  3400. ;    DSAMAuthProc -> This procedure will be called when any of the Authentication Calls
  3401. ;    are made to the CSAM. If the CSAM does not support authentication, this can be nil.
  3402. ;This call can be done only in synchronous mode.
  3403. ;
  3404. ; typedef DSAMDirUPP                     DSAMDirProc
  3405.  
  3406. ; typedef DSAMDirParseUPP                 DSAMDirParseProc
  3407.  
  3408. ; typedef DSAMAuthUPP                     DSAMAuthProc
  3409.  
  3410. DirInstantiateDSAMPB    RECORD 0
  3411. qLink                     ds.l    1                ; offset: $0 (0)
  3412. reserved1                 ds.l    1                ; offset: $4 (4)
  3413. reserved2                 ds.l    1                ; offset: $8 (8)
  3414. ioCompletion             ds.l    1                ; offset: $C (12)
  3415. ioResult                 ds.w    1                ; offset: $10 (16)
  3416. saveA5                     ds.l    1                ; offset: $12 (18)
  3417. reqCode                     ds.w    1                ; offset: $16 (22)
  3418. reserved                 ds.l    2                ; offset: $18 (24)
  3419. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3420. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3421. callID                     ds.l    1                ; offset: $26 (38)
  3422. identity                 ds.l    1                ; offset: $2A (42)
  3423. gReserved1                 ds.l    1                ; offset: $2E (46)
  3424. gReserved2                 ds.l    1                ; offset: $32 (50)
  3425. gReserved3                 ds.l    1                ; offset: $36 (54)
  3426. clientData                 ds.l    1                ; offset: $3A (58)
  3427. dsamName                 ds.l    1                ; offset: $3E (62)        ;   --> dsamName name 
  3428. dsamKind                 ds.l    1                ; offset: $42 (66)        ;   --> DSAMKind 
  3429. dsamData                 ds.l    1                ; offset: $46 (70)        ;   --> dsamData  
  3430. dsamDirProc                 ds.l    1                ; offset: $4A (74)        ;   --> of type DSAMDirProc: for catalog service calls 
  3431. dsamDirParseProc         ds.l    1                ; offset: $4E (78)        ;   --> of type DSAMDirParseProc: for catalog service parse calls 
  3432. dsamAuthProc             ds.l    1                ; offset: $52 (82)        ;   --> of type DSAMAuthProc: for authetication service calls 
  3433. sizeof                     EQU *                    ; size:   $56 (86)
  3434.                         ENDR
  3435. ;
  3436. ;DirRemoveDSAM: This call can be used to remove  a CSAM file from the OCE Setup.
  3437. ;    dsamRecordCID -> is the creationID of the CSAM record.
  3438. ;This call can be made only in synchronous mode.
  3439. ;
  3440. DirRemoveDSAMPB            RECORD 0
  3441. qLink                     ds.l    1                ; offset: $0 (0)
  3442. reserved1                 ds.l    1                ; offset: $4 (4)
  3443. reserved2                 ds.l    1                ; offset: $8 (8)
  3444. ioCompletion             ds.l    1                ; offset: $C (12)
  3445. ioResult                 ds.w    1                ; offset: $10 (16)
  3446. saveA5                     ds.l    1                ; offset: $12 (18)
  3447. reqCode                     ds.w    1                ; offset: $16 (22)
  3448. reserved                 ds.l    2                ; offset: $18 (24)
  3449. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3450. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3451. callID                     ds.l    1                ; offset: $26 (38)
  3452. identity                 ds.l    1                ; offset: $2A (42)
  3453. gReserved1                 ds.l    1                ; offset: $2E (46)
  3454. gReserved2                 ds.l    1                ; offset: $32 (50)
  3455. gReserved3                 ds.l    1                ; offset: $36 (54)
  3456. clientData                 ds.l    1                ; offset: $3A (58)
  3457. dsamRecordCID             ds        CreationID        ; offset: $3E (62)        ;  <--  CreationID for the CSAM record 
  3458. sizeof                     EQU *                    ; size:   $46 (70)
  3459.                         ENDR
  3460. ;
  3461. ;DirAddDSAMDirectory: This call can be used to inorm the availability of a CSAM catalog.
  3462. ;    dsamRecordCID ->  recordID for the CSAM serving this catalog
  3463. ;    directoryName ->  name of the catalog
  3464. ;    discriminator -> discriminator for the catalog
  3465. ;    directoryRecordCID -> If the call is successful, creationID for the record will
  3466. ;                            be returned.
  3467. ;
  3468. DirAddDSAMDirectoryPB    RECORD 0
  3469. qLink                     ds.l    1                ; offset: $0 (0)
  3470. reserved1                 ds.l    1                ; offset: $4 (4)
  3471. reserved2                 ds.l    1                ; offset: $8 (8)
  3472. ioCompletion             ds.l    1                ; offset: $C (12)
  3473. ioResult                 ds.w    1                ; offset: $10 (16)
  3474. saveA5                     ds.l    1                ; offset: $12 (18)
  3475. reqCode                     ds.w    1                ; offset: $16 (22)
  3476. reserved                 ds.l    2                ; offset: $18 (24)
  3477. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3478. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3479. callID                     ds.l    1                ; offset: $26 (38)
  3480. identity                 ds.l    1                ; offset: $2A (42)
  3481. gReserved1                 ds.l    1                ; offset: $2E (46)
  3482. gReserved2                 ds.l    1                ; offset: $32 (50)
  3483. gReserved3                 ds.l    1                ; offset: $36 (54)
  3484. clientData                 ds.l    1                ; offset: $3A (58)
  3485. dsamRecordCID             ds        CreationID        ; offset: $3E (62)        ;   --> CreationID for the CSAM record 
  3486. directoryName             ds.l    1                ; offset: $46 (70)        ;   --> catalog name 
  3487. discriminator             ds        DirDiscriminator ; offset: $4A (74)        ;   --> catalog discriminator 
  3488. features                 ds.l    1                ; offset: $52 (82)        ;   --> capabilty flags for the catalog 
  3489. directoryRecordCID         ds        CreationID        ; offset: $56 (86)        ;  <--  creationID for the catalog record 
  3490. sizeof                     EQU *                    ; size:   $5E (94)
  3491.                         ENDR
  3492. ;
  3493. ;DirRemoveDirectory: This call can be used to inform the toolbox that
  3494. ;catalog specified by 'directoryRecordCID'
  3495. ;
  3496. DirRemoveDirectoryPB    RECORD 0
  3497. qLink                     ds.l    1                ; offset: $0 (0)
  3498. reserved1                 ds.l    1                ; offset: $4 (4)
  3499. reserved2                 ds.l    1                ; offset: $8 (8)
  3500. ioCompletion             ds.l    1                ; offset: $C (12)
  3501. ioResult                 ds.w    1                ; offset: $10 (16)
  3502. saveA5                     ds.l    1                ; offset: $12 (18)
  3503. reqCode                     ds.w    1                ; offset: $16 (22)
  3504. reserved                 ds.l    2                ; offset: $18 (24)
  3505. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3506. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3507. callID                     ds.l    1                ; offset: $26 (38)
  3508. identity                 ds.l    1                ; offset: $2A (42)
  3509. gReserved1                 ds.l    1                ; offset: $2E (46)
  3510. gReserved2                 ds.l    1                ; offset: $32 (50)
  3511. gReserved3                 ds.l    1                ; offset: $36 (54)
  3512. clientData                 ds.l    1                ; offset: $3A (58)
  3513. directoryRecordCID         ds        CreationID        ; offset: $3E (62)        ;   --> creationID for the catalog record 
  3514. sizeof                     EQU *                    ; size:   $46 (70)
  3515.                         ENDR
  3516. ;
  3517. ; * DSGetExtendedDirectoriesInfo::  This call can be used to get
  3518. ; * the information of various foreign catalogs supported.
  3519. ; * Typically a DE Template  may make this call to create a
  3520. ; * Address template or a Gateway may make this call to findout
  3521. ; * catalog name space in which MSAM may would support. 
  3522. ; * Client will supply a buffer pointed by 'bufferPtr' of size 'bufferLength'. 
  3523. ; * When the call completes with 'daMoreData' error, client can examine 'totalEntries'
  3524. ; * returned and reissue the call with increaing buffer.
  3525. ; * Toolbox will findout the private information of each of the Foreign Catalogs
  3526. ; * by polling CSAM's, Gateways, and MnMServers. The Information returned
  3527. ; * for each catalog will be packed in the format: 
  3528. ; * typedef struct EachDirectoryData {
  3529. ; *  PackedRLI                        pRLI;           //  packed RLI for the catalog
  3530. ; *  OSType                            entnType;        //  Entn Type
  3531. ; *  long                            hasMailSlot;   //  If this catalog has mail slot this will be 1 otherwise zero
  3532. ; *    ProtoRString                    RealName;      //  Packed RString for Real Name (padded to even boundary) 
  3533. ; *    ProtoRString                    comment;       //  Packed RString holding any comment for Display (padded to even boundary)
  3534. ; *    long                            length;        //  data length
  3535. ; *    char                            data[length];  //  data padded to even boundary
  3536. ; * };
  3537. ; *
  3538. ; *
  3539. ; *
  3540. ; * typedef struct myData {
  3541. ; *      EachDirectoryData    data[numberOfEntries];    // data packed in the above format
  3542. ; *    };
  3543. ; *
  3544. ;
  3545. DirGetExtendedDirectoriesInfoPB RECORD 0
  3546. qLink                     ds.l    1                ; offset: $0 (0)
  3547. reserved1                 ds.l    1                ; offset: $4 (4)
  3548. reserved2                 ds.l    1                ; offset: $8 (8)
  3549. ioCompletion             ds.l    1                ; offset: $C (12)
  3550. ioResult                 ds.w    1                ; offset: $10 (16)
  3551. saveA5                     ds.l    1                ; offset: $12 (18)
  3552. reqCode                     ds.w    1                ; offset: $16 (22)
  3553. reserved                 ds.l    2                ; offset: $18 (24)
  3554. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3555. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3556. callID                     ds.l    1                ; offset: $26 (38)
  3557. identity                 ds.l    1                ; offset: $2A (42)
  3558. gReserved1                 ds.l    1                ; offset: $2E (46)
  3559. gReserved2                 ds.l    1                ; offset: $32 (50)
  3560. gReserved3                 ds.l    1                ; offset: $36 (54)
  3561. clientData                 ds.l    1                ; offset: $3A (58)
  3562. buffer                     ds.l    1                ; offset: $3E (62)        ;   --> Pointer to a buufer where data will be returned 
  3563. bufferSize                 ds.l    1                ; offset: $42 (66)        ;   --> Length of the buffer, Length of actual data will be returned here 
  3564. totalEntries             ds.l    1                ; offset: $46 (70)        ;  <--  Total Number of Catalogs found 
  3565. actualEntries             ds.l    1                ; offset: $4A (74)        ;  <--  Total Number of Catalogs entries returned 
  3566. sizeof                     EQU *                    ; size:   $4E (78)
  3567.                         ENDR
  3568. ;
  3569. ;DirGetDirectoryIconPB: With this call a client can find out about
  3570. ;the icons supported by the Catalog.
  3571. ;Both ADAP and Personal Catalog will not support this call for now.
  3572. ;A CSAM can support a call so that DE Extension can use this
  3573. ;call to find appropriate Icons.
  3574. ;
  3575. ;Returns kOCEBufferTooSmall if icon is too small, but will update iconSize.
  3576. ;
  3577. DirGetDirectoryIconPB    RECORD 0
  3578. qLink                     ds.l    1                ; offset: $0 (0)
  3579. reserved1                 ds.l    1                ; offset: $4 (4)
  3580. reserved2                 ds.l    1                ; offset: $8 (8)
  3581. ioCompletion             ds.l    1                ; offset: $C (12)
  3582. ioResult                 ds.w    1                ; offset: $10 (16)
  3583. saveA5                     ds.l    1                ; offset: $12 (18)
  3584. reqCode                     ds.w    1                ; offset: $16 (22)
  3585. reserved                 ds.l    2                ; offset: $18 (24)
  3586. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3587. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3588. callID                     ds.l    1                ; offset: $26 (38)
  3589. identity                 ds.l    1                ; offset: $2A (42)
  3590. gReserved1                 ds.l    1                ; offset: $2E (46)
  3591. gReserved2                 ds.l    1                ; offset: $32 (50)
  3592. gReserved3                 ds.l    1                ; offset: $36 (54)
  3593. clientData                 ds.l    1                ; offset: $3A (58)
  3594. pRLI                     ds.l    1                ; offset: $3E (62)        ;   --> packed RLI for the catalog 
  3595. iconType                 ds.l    1                ; offset: $42 (66)        ;   --> Type of Icon requested 
  3596. iconBuffer                 ds.l    1                ; offset: $46 (70)        ;   --> Buffer to hold Icon Data 
  3597. bufferSize                 ds.l    1                ; offset: $4A (74)        ;   <-> size of buffer to hold icon data 
  3598. sizeof                     EQU *                    ; size:   $4E (78)
  3599.                         ENDR
  3600. ;
  3601. ;DirGetOCESetupRefNum: This call will return 'dsRefnum' for the OCE Setup Personal Catalog
  3602. ;and oceSetupRecordCID for the oceSetup Record.
  3603. ;Clients interested in manipulating OCE Setup Personal Catalog directly should
  3604. ;make this call to get 'dsRefNum'.
  3605. ;'dsRefNum' will be returned in the standard field in the DirParamHeader.
  3606. ;
  3607. DirGetOCESetupRefNumPB    RECORD 0
  3608. qLink                     ds.l    1                ; offset: $0 (0)
  3609. reserved1                 ds.l    1                ; offset: $4 (4)
  3610. reserved2                 ds.l    1                ; offset: $8 (8)
  3611. ioCompletion             ds.l    1                ; offset: $C (12)
  3612. ioResult                 ds.w    1                ; offset: $10 (16)
  3613. saveA5                     ds.l    1                ; offset: $12 (18)
  3614. reqCode                     ds.w    1                ; offset: $16 (22)
  3615. reserved                 ds.l    2                ; offset: $18 (24)
  3616. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3617. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3618. callID                     ds.l    1                ; offset: $26 (38)
  3619. identity                 ds.l    1                ; offset: $2A (42)
  3620. gReserved1                 ds.l    1                ; offset: $2E (46)
  3621. gReserved2                 ds.l    1                ; offset: $32 (50)
  3622. gReserved3                 ds.l    1                ; offset: $36 (54)
  3623. clientData                 ds.l    1                ; offset: $3A (58)
  3624. oceSetupRecordCID         ds        CreationID        ; offset: $3E (62)        ;  --> creationID for the catalog record 
  3625. sizeof                     EQU *                    ; size:   $46 (70)
  3626.                         ENDR
  3627. ; ***************************************************************************
  3628. ;  Catalog and Authentication control blocks and operation definitions 
  3629. AuthParamBlock            RECORD 0
  3630. qLink                     ds.l    1                ; offset: $0 (0)
  3631. reserved1                 ds.l    1                ; offset: $4 (4)
  3632. reserved2                 ds.l    1                ; offset: $8 (8)
  3633. ioCompletion             ds.l    1                ; offset: $C (12)
  3634. ioResult                 ds.w    1                ; offset: $10 (16)
  3635. saveA5                     ds.l    1                ; offset: $12 (18)
  3636. reqCode                     ds.w    1                ; offset: $16 (22)
  3637. reserved                 ds.l    2                ; offset: $18 (24)
  3638. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3639. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3640. callID                     ds.l    1                ; offset: $26 (38)
  3641. identity                 ds.l    1                ; offset: $2A (42)
  3642. gReserved1                 ds.l    1                ; offset: $2E (46)
  3643. gReserved2                 ds.l    1                ; offset: $32 (50)
  3644. gReserved3                 ds.l    1                ; offset: $36 (54)
  3645. clientData                 ds.l    1                ; offset: $3A (58)
  3646.                          ORG 0
  3647. bindIdentityPB             ds        AuthBindSpecificIdentityPB ; offset: $0 (0)
  3648.                          ORG 0
  3649. unbindIdentityPB         ds        AuthUnbindSpecificIdentityPB ; offset: $0 (0)
  3650.                          ORG 0
  3651. resolveCreationIDPB         ds        AuthResolveCreationIDPB ; offset: $0 (0)
  3652.                          ORG 0
  3653. getIdentityInfoPB         ds        AuthGetSpecificIdentityInfoPB ; offset: $0 (0)
  3654.                          ORG 0
  3655. addKeyPB                 ds        AuthAddKeyPB    ; offset: $0 (0)
  3656.                          ORG 0
  3657. changeKeyPB                 ds        AuthChangeKeyPB ; offset: $0 (0)
  3658.                          ORG 0
  3659. deleteKeyPB                 ds        AuthDeleteKeyPB ; offset: $0 (0)
  3660.                          ORG 0
  3661. passwordToKeyPB             ds        AuthPasswordToKeyPB ; offset: $0 (0)
  3662.                          ORG 0
  3663. getCredentialsPB         ds        AuthGetCredentialsPB ; offset: $0 (0)
  3664.                          ORG 0
  3665. decryptCredentialsPB     ds        AuthDecryptCredentialsPB ; offset: $0 (0)
  3666.                          ORG 0
  3667. makeChallengePB             ds        AuthMakeChallengePB ; offset: $0 (0)
  3668.                          ORG 0
  3669. makeReplyPB                 ds        AuthMakeReplyPB ; offset: $0 (0)
  3670.                          ORG 0
  3671. verifyReplyPB             ds        AuthVerifyReplyPB ; offset: $0 (0)
  3672.                          ORG 0
  3673. getUTCTimePB             ds        AuthGetUTCTimePB ; offset: $0 (0)
  3674.                          ORG 0
  3675. makeProxyPB                 ds        AuthMakeProxyPB ; offset: $0 (0)
  3676.                          ORG 0
  3677. tradeProxyForCredentialsPB  ds    AuthTradeProxyForCredentialsPB ; offset: $0 (0)
  3678.                          ORG 0
  3679. getLocalIdentityPB         ds        AuthGetLocalIdentityPB ; offset: $0 (0)
  3680.                          ORG 0
  3681. unLockLocalIdentityPB     ds        AuthUnlockLocalIdentityPB ; offset: $0 (0)
  3682.                          ORG 0
  3683. lockLocalIdentityPB         ds        AuthLockLocalIdentityPB ; offset: $0 (0)
  3684.                          ORG 0
  3685. localIdentityQInstallPB     ds        AuthAddToLocalIdentityQueuePB ; offset: $0 (0)
  3686.                          ORG 0
  3687. localIdentityQRemovePB     ds        AuthRemoveFromLocalIdentityQueuePB ; offset: $0 (0)
  3688.                          ORG 0
  3689. setupLocalIdentityPB     ds        AuthSetupLocalIdentityPB ; offset: $0 (0)
  3690.                          ORG 0
  3691. changeLocalIdentityPB     ds        AuthChangeLocalIdentityPB ; offset: $0 (0)
  3692.                          ORG 0
  3693. removeLocalIdentityPB     ds        AuthRemoveLocalIdentityPB ; offset: $0 (0)
  3694.                          ORG 0
  3695. setupDirectoryIdentityPB  ds    OCESetupAddDirectoryInfoPB ; offset: $0 (0)
  3696.                          ORG 0
  3697. changeDirectoryIdentityPB  ds    OCESetupChangeDirectoryInfoPB ; offset: $0 (0)
  3698.                          ORG 0
  3699. removeDirectoryIdentityPB  ds    OCESetupRemoveDirectoryInfoPB ; offset: $0 (0)
  3700.                          ORG 0
  3701. getDirectoryIdentityInfoPB  ds    OCESetupGetDirectoryInfoPB ; offset: $0 (0)
  3702.                          ORG 98
  3703. sizeof                     EQU *                    ; size:   $62 (98)
  3704.                         ENDR
  3705. DirParamBlock            RECORD 0
  3706. qLink                     ds.l    1                ; offset: $0 (0)
  3707. reserved1                 ds.l    1                ; offset: $4 (4)
  3708. reserved2                 ds.l    1                ; offset: $8 (8)
  3709. ioCompletion             ds.l    1                ; offset: $C (12)
  3710. ioResult                 ds.w    1                ; offset: $10 (16)
  3711. saveA5                     ds.l    1                ; offset: $12 (18)
  3712. reqCode                     ds.w    1                ; offset: $16 (22)
  3713. reserved                 ds.l    2                ; offset: $18 (24)
  3714. serverHint                 ds        AddrBlock        ; offset: $20 (32)
  3715. dsRefNum                 ds.w    1                ; offset: $24 (36)
  3716. callID                     ds.l    1                ; offset: $26 (38)
  3717. identity                 ds.l    1                ; offset: $2A (42)
  3718. gReserved1                 ds.l    1                ; offset: $2E (46)
  3719. gReserved2                 ds.l    1                ; offset: $32 (50)
  3720. gReserved3                 ds.l    1                ; offset: $36 (54)
  3721. clientData                 ds.l    1                ; offset: $3A (58)
  3722.                          ORG 0
  3723. addRecordPB                 ds        DirAddRecordPB ; offset: $0 (0)
  3724.                          ORG 0
  3725. deleteRecordPB             ds        DirDeleteRecordPB ; offset: $0 (0)
  3726.                          ORG 0
  3727. enumerateGetPB             ds        DirEnumerateGetPB ; offset: $0 (0)
  3728.                          ORG 0
  3729. enumerateParsePB         ds        DirEnumerateParsePB ; offset: $0 (0)
  3730.                          ORG 0
  3731. findRecordGetPB             ds        DirFindRecordGetPB ; offset: $0 (0)
  3732.                          ORG 0
  3733. findRecordParsePB         ds        DirFindRecordParsePB ; offset: $0 (0)
  3734.                          ORG 0
  3735. lookupGetPB                 ds        DirLookupGetPB ; offset: $0 (0)
  3736.                          ORG 0
  3737. lookupParsePB             ds        DirLookupParsePB ; offset: $0 (0)
  3738.                          ORG 0
  3739. addAttributeValuePB         ds        DirAddAttributeValuePB ; offset: $0 (0)
  3740.                          ORG 0
  3741. deleteAttributeTypePB     ds        DirDeleteAttributeTypePB ; offset: $0 (0)
  3742.                          ORG 0
  3743. deleteAttributeValuePB     ds        DirDeleteAttributeValuePB ; offset: $0 (0)
  3744.                          ORG 0
  3745. changeAttributeValuePB     ds        DirChangeAttributeValuePB ; offset: $0 (0)
  3746.                          ORG 0
  3747. verifyAttributeValuePB     ds        DirVerifyAttributeValuePB ; offset: $0 (0)
  3748.                          ORG 0
  3749. findValuePB                 ds        DirFindValuePB ; offset: $0 (0)
  3750.                          ORG 0
  3751. enumeratePseudonymGetPB     ds        DirEnumeratePseudonymGetPB ; offset: $0 (0)
  3752.                          ORG 0
  3753. enumeratePseudonymParsePB  ds    DirEnumeratePseudonymParsePB ; offset: $0 (0)
  3754.                          ORG 0
  3755. addPseudonymPB             ds        DirAddPseudonymPB ; offset: $0 (0)
  3756.                          ORG 0
  3757. deletePseudonymPB         ds        DirDeletePseudonymPB ; offset: $0 (0)
  3758.                          ORG 0
  3759. addAliasPB                 ds        DirAddAliasPB    ; offset: $0 (0)
  3760.                          ORG 0
  3761. enumerateAttributeTypesGetPB  ds DirEnumerateAttributeTypesGetPB ; offset: $0 (0)
  3762.                          ORG 0
  3763. enumerateAttributeTypesParsePB  ds DirEnumerateAttributeTypesParsePB ; offset: $0 (0)
  3764.                          ORG 0
  3765. getNameAndTypePB         ds        DirGetNameAndTypePB ; offset: $0 (0)
  3766.                          ORG 0
  3767. setNameAndTypePB         ds        DirSetNameAndTypePB ; offset: $0 (0)
  3768.                          ORG 0
  3769. getRecordMetaInfoPB         ds        DirGetRecordMetaInfoPB ; offset: $0 (0)
  3770.                          ORG 0
  3771. getDNodeMetaInfoPB         ds        DirGetDNodeMetaInfoPB ; offset: $0 (0)
  3772.                          ORG 0
  3773. getDirectoryInfoPB         ds        DirGetDirectoryInfoPB ; offset: $0 (0)
  3774.                          ORG 0
  3775. getDNodeAccessControlGetPB  ds    DirGetDNodeAccessControlGetPB ; offset: $0 (0)
  3776.                          ORG 0
  3777. getDNodeAccessControlParsePB  ds DirGetDNodeAccessControlParsePB ; offset: $0 (0)
  3778.                          ORG 0
  3779. getRecordAccessControlGetPB  ds    DirGetRecordAccessControlGetPB ; offset: $0 (0)
  3780.                          ORG 0
  3781. getRecordAccessControlParsePB  ds DirGetRecordAccessControlParsePB ; offset: $0 (0)
  3782.                          ORG 0
  3783. getAttributeAccessControlGetPB  ds DirGetAttributeAccessControlGetPB ; offset: $0 (0)
  3784.                          ORG 0
  3785. getAttributeAccessControlParsePB  ds DirGetAttributeAccessControlParsePB ; offset: $0 (0)
  3786.                          ORG 0
  3787. enumerateDirectoriesGetPB  ds    DirEnumerateDirectoriesGetPB ; offset: $0 (0)
  3788.                          ORG 0
  3789. enumerateDirectoriesParsePB  ds    DirEnumerateDirectoriesParsePB ; offset: $0 (0)
  3790.                          ORG 0
  3791. addADAPDirectoryPB         ds        DirAddADAPDirectoryPB ; offset: $0 (0)
  3792.                          ORG 0
  3793. removeDirectoryPB         ds        DirRemoveDirectoryPB ; offset: $0 (0)
  3794.                          ORG 0
  3795. netSearchADAPDirectoriesGetPB  ds DirNetSearchADAPDirectoriesGetPB ; offset: $0 (0)
  3796.                          ORG 0
  3797. netSearchADAPDirectoriesParsePB  ds DirNetSearchADAPDirectoriesParsePB ; offset: $0 (0)
  3798.                          ORG 0
  3799. findADAPDirectoryByNetSearchPB  ds DirFindADAPDirectoryByNetSearchPB ; offset: $0 (0)
  3800.                          ORG 0
  3801. mapDNodeNumberToPathNamePB  ds    DirMapDNodeNumberToPathNamePB ; offset: $0 (0)
  3802.                          ORG 0
  3803. mapPathNameToDNodeNumberPB  ds    DirMapPathNameToDNodeNumberPB ; offset: $0 (0)
  3804.                          ORG 0
  3805. getLocalNetworkSpecPB     ds        DirGetLocalNetworkSpecPB ; offset: $0 (0)
  3806.                          ORG 0
  3807. getDNodeInfoPB             ds        DirGetDNodeInfoPB ; offset: $0 (0)
  3808.                          ORG 0
  3809. createPersonalDirectoryPB  ds    DirCreatePersonalDirectoryPB ; offset: $0 (0)
  3810.                          ORG 0
  3811. openPersonalDirectoryPB     ds        DirOpenPersonalDirectoryPB ; offset: $0 (0)
  3812.                          ORG 0
  3813. closePersonalDirectoryPB  ds    DirClosePersonalDirectoryPB ; offset: $0 (0)
  3814.                          ORG 0
  3815. makePersonalDirectoryRLIPB  ds    DirMakePersonalDirectoryRLIPB ; offset: $0 (0)
  3816.                          ORG 0
  3817. addDSAMPB                 ds        DirAddDSAMPB    ; offset: $0 (0)
  3818.                          ORG 0
  3819. instantiateDSAMPB         ds        DirInstantiateDSAMPB ; offset: $0 (0)
  3820.                          ORG 0
  3821. removeDSAMPB             ds        DirRemoveDSAMPB ; offset: $0 (0)
  3822.                          ORG 0
  3823. addDSAMDirectoryPB         ds        DirAddDSAMDirectoryPB ; offset: $0 (0)
  3824.                          ORG 0
  3825. getExtendedDirectoriesInfoPB  ds DirGetExtendedDirectoriesInfoPB ; offset: $0 (0)
  3826.                          ORG 0
  3827. getDirectoryIconPB         ds        DirGetDirectoryIconPB ; offset: $0 (0)
  3828.                          ORG 0
  3829. dirGetOCESetupRefNumPB     ds        DirGetOCESetupRefNumPB ; offset: $0 (0)
  3830.                          ORG 0
  3831. abortPB                     ds        DirAbortPB        ; offset: $0 (0)
  3832.                          ORG 174
  3833. sizeof                     EQU *                    ; size:   $AE (174)
  3834.                         ENDR
  3835. ;
  3836. ; pascal OSErr AuthBindSpecificIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  3837. ;
  3838.     IF ¨ GENERATINGCFM THEN
  3839.         Macro
  3840.         _AuthBindSpecificIdentity
  3841.             move.w              #$0200,-(sp)
  3842.             dc.w                $AA5E
  3843.         EndM
  3844.     ELSE
  3845.         IMPORT_CFM_FUNCTION AuthBindSpecificIdentity
  3846.     ENDIF
  3847.  
  3848. ;
  3849. ; pascal OSErr AuthUnbindSpecificIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  3850. ;
  3851.     IF ¨ GENERATINGCFM THEN
  3852.         Macro
  3853.         _AuthUnbindSpecificIdentity
  3854.             move.w              #$0201,-(sp)
  3855.             dc.w                $AA5E
  3856.         EndM
  3857.     ELSE
  3858.         IMPORT_CFM_FUNCTION AuthUnbindSpecificIdentity
  3859.     ENDIF
  3860.  
  3861. ;
  3862. ; pascal OSErr AuthResolveCreationID(AuthParamBlockPtr paramBlock, Boolean async)
  3863. ;
  3864.     IF ¨ GENERATINGCFM THEN
  3865.         Macro
  3866.         _AuthResolveCreationID
  3867.             move.w              #$0202,-(sp)
  3868.             dc.w                $AA5E
  3869.         EndM
  3870.     ELSE
  3871.         IMPORT_CFM_FUNCTION AuthResolveCreationID
  3872.     ENDIF
  3873.  
  3874. ;
  3875. ; pascal OSErr AuthGetSpecificIdentityInfo(AuthParamBlockPtr paramBlock, Boolean async)
  3876. ;
  3877.     IF ¨ GENERATINGCFM THEN
  3878.         Macro
  3879.         _AuthGetSpecificIdentityInfo
  3880.             move.w              #$0203,-(sp)
  3881.             dc.w                $AA5E
  3882.         EndM
  3883.     ELSE
  3884.         IMPORT_CFM_FUNCTION AuthGetSpecificIdentityInfo
  3885.     ENDIF
  3886.  
  3887. ;
  3888. ; pascal OSErr AuthAddKey(AuthParamBlockPtr paramBlock, Boolean async)
  3889. ;
  3890.     IF ¨ GENERATINGCFM THEN
  3891.         Macro
  3892.         _AuthAddKey
  3893.             move.w              #$0207,-(sp)
  3894.             dc.w                $AA5E
  3895.         EndM
  3896.     ELSE
  3897.         IMPORT_CFM_FUNCTION AuthAddKey
  3898.     ENDIF
  3899.  
  3900. ;
  3901. ; pascal OSErr AuthChangeKey(AuthParamBlockPtr paramBlock, Boolean async)
  3902. ;
  3903.     IF ¨ GENERATINGCFM THEN
  3904.         Macro
  3905.         _AuthChangeKey
  3906.             move.w              #$0208,-(sp)
  3907.             dc.w                $AA5E
  3908.         EndM
  3909.     ELSE
  3910.         IMPORT_CFM_FUNCTION AuthChangeKey
  3911.     ENDIF
  3912.  
  3913. ;
  3914. ; pascal OSErr AuthDeleteKey(AuthParamBlockPtr paramBlock, Boolean async)
  3915. ;
  3916.     IF ¨ GENERATINGCFM THEN
  3917.         Macro
  3918.         _AuthDeleteKey
  3919.             move.w              #$0209,-(sp)
  3920.             dc.w                $AA5E
  3921.         EndM
  3922.     ELSE
  3923.         IMPORT_CFM_FUNCTION AuthDeleteKey
  3924.     ENDIF
  3925.  
  3926. ;
  3927. ; pascal OSErr AuthPasswordToKey(AuthParamBlockPtr paramBlock, Boolean async)
  3928. ;
  3929.     IF ¨ GENERATINGCFM THEN
  3930.         Macro
  3931.         _AuthPasswordToKey
  3932.             move.w              #$020A,-(sp)
  3933.             dc.w                $AA5E
  3934.         EndM
  3935.     ELSE
  3936.         IMPORT_CFM_FUNCTION AuthPasswordToKey
  3937.     ENDIF
  3938.  
  3939. ;
  3940. ; pascal OSErr AuthGetCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  3941. ;
  3942.     IF ¨ GENERATINGCFM THEN
  3943.         Macro
  3944.         _AuthGetCredentials
  3945.             move.w              #$020B,-(sp)
  3946.             dc.w                $AA5E
  3947.         EndM
  3948.     ELSE
  3949.         IMPORT_CFM_FUNCTION AuthGetCredentials
  3950.     ENDIF
  3951.  
  3952. ;
  3953. ; pascal OSErr AuthDecryptCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  3954. ;
  3955.     IF ¨ GENERATINGCFM THEN
  3956.         Macro
  3957.         _AuthDecryptCredentials
  3958.             move.w              #$020C,-(sp)
  3959.             dc.w                $AA5E
  3960.         EndM
  3961.     ELSE
  3962.         IMPORT_CFM_FUNCTION AuthDecryptCredentials
  3963.     ENDIF
  3964.  
  3965. ;
  3966. ; pascal OSErr AuthMakeChallenge(AuthParamBlockPtr paramBlock, Boolean async)
  3967. ;
  3968.     IF ¨ GENERATINGCFM THEN
  3969.         Macro
  3970.         _AuthMakeChallenge
  3971.             move.w              #$020F,-(sp)
  3972.             dc.w                $AA5E
  3973.         EndM
  3974.     ELSE
  3975.         IMPORT_CFM_FUNCTION AuthMakeChallenge
  3976.     ENDIF
  3977.  
  3978. ;
  3979. ; pascal OSErr AuthMakeReply(AuthParamBlockPtr paramBlock, Boolean async)
  3980. ;
  3981.     IF ¨ GENERATINGCFM THEN
  3982.         Macro
  3983.         _AuthMakeReply
  3984.             move.w              #$0210,-(sp)
  3985.             dc.w                $AA5E
  3986.         EndM
  3987.     ELSE
  3988.         IMPORT_CFM_FUNCTION AuthMakeReply
  3989.     ENDIF
  3990.  
  3991. ;
  3992. ; pascal OSErr AuthVerifyReply(AuthParamBlockPtr paramBlock, Boolean async)
  3993. ;
  3994.     IF ¨ GENERATINGCFM THEN
  3995.         Macro
  3996.         _AuthVerifyReply
  3997.             move.w              #$0211,-(sp)
  3998.             dc.w                $AA5E
  3999.         EndM
  4000.     ELSE
  4001.         IMPORT_CFM_FUNCTION AuthVerifyReply
  4002.     ENDIF
  4003.  
  4004. ;
  4005. ; pascal OSErr AuthGetUTCTime(AuthParamBlockPtr paramBlock, Boolean async)
  4006. ;
  4007.     IF ¨ GENERATINGCFM THEN
  4008.         Macro
  4009.         _AuthGetUTCTime
  4010.             move.w              #$021A,-(sp)
  4011.             dc.w                $AA5E
  4012.         EndM
  4013.     ELSE
  4014.         IMPORT_CFM_FUNCTION AuthGetUTCTime
  4015.     ENDIF
  4016.  
  4017. ;
  4018. ; pascal OSErr AuthMakeProxy(AuthParamBlockPtr paramBlock, Boolean async)
  4019. ;
  4020.     IF ¨ GENERATINGCFM THEN
  4021.         Macro
  4022.         _AuthMakeProxy
  4023.             move.w              #$0212,-(sp)
  4024.             dc.w                $AA5E
  4025.         EndM
  4026.     ELSE
  4027.         IMPORT_CFM_FUNCTION AuthMakeProxy
  4028.     ENDIF
  4029.  
  4030. ;
  4031. ; pascal OSErr AuthTradeProxyForCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4032. ;
  4033.     IF ¨ GENERATINGCFM THEN
  4034.         Macro
  4035.         _AuthTradeProxyForCredentials
  4036.             move.w              #$0213,-(sp)
  4037.             dc.w                $AA5E
  4038.         EndM
  4039.     ELSE
  4040.         IMPORT_CFM_FUNCTION AuthTradeProxyForCredentials
  4041.     ENDIF
  4042.  
  4043. ;  Local Identity API 
  4044. ;
  4045. ; pascal OSErr AuthGetLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4046. ;
  4047.     IF ¨ GENERATINGCFM THEN
  4048.         Macro
  4049.         _AuthGetLocalIdentity
  4050.             move.w              #$0204,-(sp)
  4051.             dc.w                $AA5E
  4052.         EndM
  4053.     ELSE
  4054.         IMPORT_CFM_FUNCTION AuthGetLocalIdentity
  4055.     ENDIF
  4056.  
  4057. ;
  4058. ; pascal OSErr AuthUnlockLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4059. ;
  4060.     IF ¨ GENERATINGCFM THEN
  4061.         Macro
  4062.         _AuthUnlockLocalIdentity
  4063.             move.w              #$0214,-(sp)
  4064.             dc.w                $AA5E
  4065.         EndM
  4066.     ELSE
  4067.         IMPORT_CFM_FUNCTION AuthUnlockLocalIdentity
  4068.     ENDIF
  4069.  
  4070. ;
  4071. ; pascal OSErr AuthLockLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4072. ;
  4073.     IF ¨ GENERATINGCFM THEN
  4074.         Macro
  4075.         _AuthLockLocalIdentity
  4076.             move.w              #$0215,-(sp)
  4077.             dc.w                $AA5E
  4078.         EndM
  4079.     ELSE
  4080.         IMPORT_CFM_FUNCTION AuthLockLocalIdentity
  4081.     ENDIF
  4082.  
  4083. ;
  4084. ; pascal OSErr AuthAddToLocalIdentityQueue(AuthParamBlockPtr paramBlock, Boolean async)
  4085. ;
  4086.     IF ¨ GENERATINGCFM THEN
  4087.         Macro
  4088.         _AuthAddToLocalIdentityQueue
  4089.             move.w              #$0205,-(sp)
  4090.             dc.w                $AA5E
  4091.         EndM
  4092.     ELSE
  4093.         IMPORT_CFM_FUNCTION AuthAddToLocalIdentityQueue
  4094.     ENDIF
  4095.  
  4096. ;
  4097. ; pascal OSErr AuthRemoveFromLocalIdentityQueue(AuthParamBlockPtr paramBlock, Boolean async)
  4098. ;
  4099.     IF ¨ GENERATINGCFM THEN
  4100.         Macro
  4101.         _AuthRemoveFromLocalIdentityQueue
  4102.             move.w              #$0206,-(sp)
  4103.             dc.w                $AA5E
  4104.         EndM
  4105.     ELSE
  4106.         IMPORT_CFM_FUNCTION AuthRemoveFromLocalIdentityQueue
  4107.     ENDIF
  4108.  
  4109. ;
  4110. ; pascal OSErr AuthSetupLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4111. ;
  4112.     IF ¨ GENERATINGCFM THEN
  4113.         Macro
  4114.         _AuthSetupLocalIdentity
  4115.             move.w              #$0216,-(sp)
  4116.             dc.w                $AA5E
  4117.         EndM
  4118.     ELSE
  4119.         IMPORT_CFM_FUNCTION AuthSetupLocalIdentity
  4120.     ENDIF
  4121.  
  4122. ;
  4123. ; pascal OSErr AuthChangeLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4124. ;
  4125.     IF ¨ GENERATINGCFM THEN
  4126.         Macro
  4127.         _AuthChangeLocalIdentity
  4128.             move.w              #$0217,-(sp)
  4129.             dc.w                $AA5E
  4130.         EndM
  4131.     ELSE
  4132.         IMPORT_CFM_FUNCTION AuthChangeLocalIdentity
  4133.     ENDIF
  4134.  
  4135. ;
  4136. ; pascal OSErr AuthRemoveLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4137. ;
  4138.     IF ¨ GENERATINGCFM THEN
  4139.         Macro
  4140.         _AuthRemoveLocalIdentity
  4141.             move.w              #$0218,-(sp)
  4142.             dc.w                $AA5E
  4143.         EndM
  4144.     ELSE
  4145.         IMPORT_CFM_FUNCTION AuthRemoveLocalIdentity
  4146.     ENDIF
  4147.  
  4148. ;
  4149. ; pascal OSErr DirAddRecord(DirParamBlockPtr paramBlock, Boolean async)
  4150. ;
  4151.     IF ¨ GENERATINGCFM THEN
  4152.         Macro
  4153.         _DirAddRecord
  4154.             move.w              #$0109,-(sp)
  4155.             dc.w                $AA5E
  4156.         EndM
  4157.     ELSE
  4158.         IMPORT_CFM_FUNCTION DirAddRecord
  4159.     ENDIF
  4160.  
  4161. ;
  4162. ; pascal OSErr DirDeleteRecord(DirParamBlockPtr paramBlock, Boolean async)
  4163. ;
  4164.     IF ¨ GENERATINGCFM THEN
  4165.         Macro
  4166.         _DirDeleteRecord
  4167.             move.w              #$010A,-(sp)
  4168.             dc.w                $AA5E
  4169.         EndM
  4170.     ELSE
  4171.         IMPORT_CFM_FUNCTION DirDeleteRecord
  4172.     ENDIF
  4173.  
  4174. ;
  4175. ; pascal OSErr DirEnumerateGet(DirParamBlockPtr paramBlock, Boolean async)
  4176. ;
  4177.     IF ¨ GENERATINGCFM THEN
  4178.         Macro
  4179.         _DirEnumerateGet
  4180.             move.w              #$0111,-(sp)
  4181.             dc.w                $AA5E
  4182.         EndM
  4183.     ELSE
  4184.         IMPORT_CFM_FUNCTION DirEnumerateGet
  4185.     ENDIF
  4186.  
  4187. ;
  4188. ; pascal OSErr DirEnumerateParse(DirParamBlockPtr paramBlock, Boolean async)
  4189. ;
  4190.     IF ¨ GENERATINGCFM THEN
  4191.         Macro
  4192.         _DirEnumerateParse
  4193.             move.w              #$0101,-(sp)
  4194.             dc.w                $AA5E
  4195.         EndM
  4196.     ELSE
  4197.         IMPORT_CFM_FUNCTION DirEnumerateParse
  4198.     ENDIF
  4199.  
  4200. ;
  4201. ; pascal OSErr DirFindRecordGet(DirParamBlockPtr paramBlock, Boolean async)
  4202. ;
  4203.     IF ¨ GENERATINGCFM THEN
  4204.         Macro
  4205.         _DirFindRecordGet
  4206.             move.w              #$0140,-(sp)
  4207.             dc.w                $AA5E
  4208.         EndM
  4209.     ELSE
  4210.         IMPORT_CFM_FUNCTION DirFindRecordGet
  4211.     ENDIF
  4212.  
  4213. ;
  4214. ; pascal OSErr DirFindRecordParse(DirParamBlockPtr paramBlock, Boolean async)
  4215. ;
  4216.     IF ¨ GENERATINGCFM THEN
  4217.         Macro
  4218.         _DirFindRecordParse
  4219.             move.w              #$0141,-(sp)
  4220.             dc.w                $AA5E
  4221.         EndM
  4222.     ELSE
  4223.         IMPORT_CFM_FUNCTION DirFindRecordParse
  4224.     ENDIF
  4225.  
  4226. ;
  4227. ; pascal OSErr DirLookupGet(DirParamBlockPtr paramBlock, Boolean async)
  4228. ;
  4229.     IF ¨ GENERATINGCFM THEN
  4230.         Macro
  4231.         _DirLookupGet
  4232.             move.w              #$0117,-(sp)
  4233.             dc.w                $AA5E
  4234.         EndM
  4235.     ELSE
  4236.         IMPORT_CFM_FUNCTION DirLookupGet
  4237.     ENDIF
  4238.  
  4239. ;
  4240. ; pascal OSErr DirLookupParse(DirParamBlockPtr paramBlock, Boolean async)
  4241. ;
  4242.     IF ¨ GENERATINGCFM THEN
  4243.         Macro
  4244.         _DirLookupParse
  4245.             move.w              #$0102,-(sp)
  4246.             dc.w                $AA5E
  4247.         EndM
  4248.     ELSE
  4249.         IMPORT_CFM_FUNCTION DirLookupParse
  4250.     ENDIF
  4251.  
  4252. ;
  4253. ; pascal OSErr DirAddAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4254. ;
  4255.     IF ¨ GENERATINGCFM THEN
  4256.         Macro
  4257.         _DirAddAttributeValue
  4258.             move.w              #$010B,-(sp)
  4259.             dc.w                $AA5E
  4260.         EndM
  4261.     ELSE
  4262.         IMPORT_CFM_FUNCTION DirAddAttributeValue
  4263.     ENDIF
  4264.  
  4265. ;
  4266. ; pascal OSErr DirDeleteAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4267. ;
  4268.     IF ¨ GENERATINGCFM THEN
  4269.         Macro
  4270.         _DirDeleteAttributeValue
  4271.             move.w              #$010C,-(sp)
  4272.             dc.w                $AA5E
  4273.         EndM
  4274.     ELSE
  4275.         IMPORT_CFM_FUNCTION DirDeleteAttributeValue
  4276.     ENDIF
  4277.  
  4278. ;
  4279. ; pascal OSErr DirDeleteAttributeType(DirParamBlockPtr paramBlock, Boolean async)
  4280. ;
  4281.     IF ¨ GENERATINGCFM THEN
  4282.         Macro
  4283.         _DirDeleteAttributeType
  4284.             move.w              #$0130,-(sp)
  4285.             dc.w                $AA5E
  4286.         EndM
  4287.     ELSE
  4288.         IMPORT_CFM_FUNCTION DirDeleteAttributeType
  4289.     ENDIF
  4290.  
  4291. ;
  4292. ; pascal OSErr DirChangeAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4293. ;
  4294.     IF ¨ GENERATINGCFM THEN
  4295.         Macro
  4296.         _DirChangeAttributeValue
  4297.             move.w              #$010D,-(sp)
  4298.             dc.w                $AA5E
  4299.         EndM
  4300.     ELSE
  4301.         IMPORT_CFM_FUNCTION DirChangeAttributeValue
  4302.     ENDIF
  4303.  
  4304. ;
  4305. ; pascal OSErr DirVerifyAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4306. ;
  4307.     IF ¨ GENERATINGCFM THEN
  4308.         Macro
  4309.         _DirVerifyAttributeValue
  4310.             move.w              #$010E,-(sp)
  4311.             dc.w                $AA5E
  4312.         EndM
  4313.     ELSE
  4314.         IMPORT_CFM_FUNCTION DirVerifyAttributeValue
  4315.     ENDIF
  4316.  
  4317. ;
  4318. ; pascal OSErr DirFindValue(DirParamBlockPtr paramBlock, Boolean async)
  4319. ;
  4320.     IF ¨ GENERATINGCFM THEN
  4321.         Macro
  4322.         _DirFindValue
  4323.             move.w              #$0126,-(sp)
  4324.             dc.w                $AA5E
  4325.         EndM
  4326.     ELSE
  4327.         IMPORT_CFM_FUNCTION DirFindValue
  4328.     ENDIF
  4329.  
  4330. ;
  4331. ; pascal OSErr DirEnumerateAttributeTypesGet(DirParamBlockPtr paramBlock, Boolean async)
  4332. ;
  4333.     IF ¨ GENERATINGCFM THEN
  4334.         Macro
  4335.         _DirEnumerateAttributeTypesGet
  4336.             move.w              #$0112,-(sp)
  4337.             dc.w                $AA5E
  4338.         EndM
  4339.     ELSE
  4340.         IMPORT_CFM_FUNCTION DirEnumerateAttributeTypesGet
  4341.     ENDIF
  4342.  
  4343. ;
  4344. ; pascal OSErr DirEnumerateAttributeTypesParse(DirParamBlockPtr paramBlock, Boolean async)
  4345. ;
  4346.     IF ¨ GENERATINGCFM THEN
  4347.         Macro
  4348.         _DirEnumerateAttributeTypesParse
  4349.             move.w              #$0103,-(sp)
  4350.             dc.w                $AA5E
  4351.         EndM
  4352.     ELSE
  4353.         IMPORT_CFM_FUNCTION DirEnumerateAttributeTypesParse
  4354.     ENDIF
  4355.  
  4356. ;
  4357. ; pascal OSErr DirAddPseudonym(DirParamBlockPtr paramBlock, Boolean async)
  4358. ;
  4359.     IF ¨ GENERATINGCFM THEN
  4360.         Macro
  4361.         _DirAddPseudonym
  4362.             move.w              #$010F,-(sp)
  4363.             dc.w                $AA5E
  4364.         EndM
  4365.     ELSE
  4366.         IMPORT_CFM_FUNCTION DirAddPseudonym
  4367.     ENDIF
  4368.  
  4369. ;
  4370. ; pascal OSErr DirDeletePseudonym(DirParamBlockPtr paramBlock, Boolean async)
  4371. ;
  4372.     IF ¨ GENERATINGCFM THEN
  4373.         Macro
  4374.         _DirDeletePseudonym
  4375.             move.w              #$0110,-(sp)
  4376.             dc.w                $AA5E
  4377.         EndM
  4378.     ELSE
  4379.         IMPORT_CFM_FUNCTION DirDeletePseudonym
  4380.     ENDIF
  4381.  
  4382. ;
  4383. ; pascal OSErr DirAddAlias(DirParamBlockPtr paramBlock, Boolean async)
  4384. ;
  4385.     IF ¨ GENERATINGCFM THEN
  4386.         Macro
  4387.         _DirAddAlias
  4388.             move.w              #$011C,-(sp)
  4389.             dc.w                $AA5E
  4390.         EndM
  4391.     ELSE
  4392.         IMPORT_CFM_FUNCTION DirAddAlias
  4393.     ENDIF
  4394.  
  4395. ;
  4396. ; pascal OSErr DirEnumeratePseudonymGet(DirParamBlockPtr paramBlock, Boolean async)
  4397. ;
  4398.     IF ¨ GENERATINGCFM THEN
  4399.         Macro
  4400.         _DirEnumeratePseudonymGet
  4401.             move.w              #$0113,-(sp)
  4402.             dc.w                $AA5E
  4403.         EndM
  4404.     ELSE
  4405.         IMPORT_CFM_FUNCTION DirEnumeratePseudonymGet
  4406.     ENDIF
  4407.  
  4408. ;
  4409. ; pascal OSErr DirEnumeratePseudonymParse(DirParamBlockPtr paramBlock, Boolean async)
  4410. ;
  4411.     IF ¨ GENERATINGCFM THEN
  4412.         Macro
  4413.         _DirEnumeratePseudonymParse
  4414.             move.w              #$0104,-(sp)
  4415.             dc.w                $AA5E
  4416.         EndM
  4417.     ELSE
  4418.         IMPORT_CFM_FUNCTION DirEnumeratePseudonymParse
  4419.     ENDIF
  4420.  
  4421. ;
  4422. ; pascal OSErr DirGetNameAndType(DirParamBlockPtr paramBlock, Boolean async)
  4423. ;
  4424.     IF ¨ GENERATINGCFM THEN
  4425.         Macro
  4426.         _DirGetNameAndType
  4427.             move.w              #$0114,-(sp)
  4428.             dc.w                $AA5E
  4429.         EndM
  4430.     ELSE
  4431.         IMPORT_CFM_FUNCTION DirGetNameAndType
  4432.     ENDIF
  4433.  
  4434. ;
  4435. ; pascal OSErr DirSetNameAndType(DirParamBlockPtr paramBlock, Boolean async)
  4436. ;
  4437.     IF ¨ GENERATINGCFM THEN
  4438.         Macro
  4439.         _DirSetNameAndType
  4440.             move.w              #$0115,-(sp)
  4441.             dc.w                $AA5E
  4442.         EndM
  4443.     ELSE
  4444.         IMPORT_CFM_FUNCTION DirSetNameAndType
  4445.     ENDIF
  4446.  
  4447. ;
  4448. ; pascal OSErr DirGetRecordMetaInfo(DirParamBlockPtr paramBlock, Boolean async)
  4449. ;
  4450.     IF ¨ GENERATINGCFM THEN
  4451.         Macro
  4452.         _DirGetRecordMetaInfo
  4453.             move.w              #$0116,-(sp)
  4454.             dc.w                $AA5E
  4455.         EndM
  4456.     ELSE
  4457.         IMPORT_CFM_FUNCTION DirGetRecordMetaInfo
  4458.     ENDIF
  4459.  
  4460. ;
  4461. ; pascal OSErr DirGetDNodeMetaInfo(DirParamBlockPtr paramBlock, Boolean async)
  4462. ;
  4463.     IF ¨ GENERATINGCFM THEN
  4464.         Macro
  4465.         _DirGetDNodeMetaInfo
  4466.             move.w              #$0118,-(sp)
  4467.             dc.w                $AA5E
  4468.         EndM
  4469.     ELSE
  4470.         IMPORT_CFM_FUNCTION DirGetDNodeMetaInfo
  4471.     ENDIF
  4472.  
  4473. ;
  4474. ; pascal OSErr DirGetDirectoryInfo(DirParamBlockPtr paramBlock, Boolean async)
  4475. ;
  4476.     IF ¨ GENERATINGCFM THEN
  4477.         Macro
  4478.         _DirGetDirectoryInfo
  4479.             move.w              #$0119,-(sp)
  4480.             dc.w                $AA5E
  4481.         EndM
  4482.     ELSE
  4483.         IMPORT_CFM_FUNCTION DirGetDirectoryInfo
  4484.     ENDIF
  4485.  
  4486. ;
  4487. ; pascal OSErr DirGetDNodeAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4488. ;
  4489.     IF ¨ GENERATINGCFM THEN
  4490.         Macro
  4491.         _DirGetDNodeAccessControlGet
  4492.             move.w              #$012A,-(sp)
  4493.             dc.w                $AA5E
  4494.         EndM
  4495.     ELSE
  4496.         IMPORT_CFM_FUNCTION DirGetDNodeAccessControlGet
  4497.     ENDIF
  4498.  
  4499. ;
  4500. ; pascal OSErr DirGetDNodeAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4501. ;
  4502.     IF ¨ GENERATINGCFM THEN
  4503.         Macro
  4504.         _DirGetDNodeAccessControlParse
  4505.             move.w              #$012F,-(sp)
  4506.             dc.w                $AA5E
  4507.         EndM
  4508.     ELSE
  4509.         IMPORT_CFM_FUNCTION DirGetDNodeAccessControlParse
  4510.     ENDIF
  4511.  
  4512. ;
  4513. ; pascal OSErr DirGetRecordAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4514. ;
  4515.     IF ¨ GENERATINGCFM THEN
  4516.         Macro
  4517.         _DirGetRecordAccessControlGet
  4518.             move.w              #$012C,-(sp)
  4519.             dc.w                $AA5E
  4520.         EndM
  4521.     ELSE
  4522.         IMPORT_CFM_FUNCTION DirGetRecordAccessControlGet
  4523.     ENDIF
  4524.  
  4525. ;
  4526. ; pascal OSErr DirGetRecordAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4527. ;
  4528.     IF ¨ GENERATINGCFM THEN
  4529.         Macro
  4530.         _DirGetRecordAccessControlParse
  4531.             move.w              #$0134,-(sp)
  4532.             dc.w                $AA5E
  4533.         EndM
  4534.     ELSE
  4535.         IMPORT_CFM_FUNCTION DirGetRecordAccessControlParse
  4536.     ENDIF
  4537.  
  4538. ;
  4539. ; pascal OSErr DirGetAttributeAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4540. ;
  4541.     IF ¨ GENERATINGCFM THEN
  4542.         Macro
  4543.         _DirGetAttributeAccessControlGet
  4544.             move.w              #$012E,-(sp)
  4545.             dc.w                $AA5E
  4546.         EndM
  4547.     ELSE
  4548.         IMPORT_CFM_FUNCTION DirGetAttributeAccessControlGet
  4549.     ENDIF
  4550.  
  4551. ;
  4552. ; pascal OSErr DirGetAttributeAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4553. ;
  4554.     IF ¨ GENERATINGCFM THEN
  4555.         Macro
  4556.         _DirGetAttributeAccessControlParse
  4557.             move.w              #$0138,-(sp)
  4558.             dc.w                $AA5E
  4559.         EndM
  4560.     ELSE
  4561.         IMPORT_CFM_FUNCTION DirGetAttributeAccessControlParse
  4562.     ENDIF
  4563.  
  4564. ;
  4565. ; pascal OSErr DirEnumerateDirectoriesGet(DirParamBlockPtr paramBlock, Boolean async)
  4566. ;
  4567.     IF ¨ GENERATINGCFM THEN
  4568.         Macro
  4569.         _DirEnumerateDirectoriesGet
  4570.             move.w              #$011A,-(sp)
  4571.             dc.w                $AA5E
  4572.         EndM
  4573.     ELSE
  4574.         IMPORT_CFM_FUNCTION DirEnumerateDirectoriesGet
  4575.     ENDIF
  4576.  
  4577. ;
  4578. ; pascal OSErr DirEnumerateDirectoriesParse(DirParamBlockPtr paramBlock, Boolean async)
  4579. ;
  4580.     IF ¨ GENERATINGCFM THEN
  4581.         Macro
  4582.         _DirEnumerateDirectoriesParse
  4583.             move.w              #$0106,-(sp)
  4584.             dc.w                $AA5E
  4585.         EndM
  4586.     ELSE
  4587.         IMPORT_CFM_FUNCTION DirEnumerateDirectoriesParse
  4588.     ENDIF
  4589.  
  4590. ;
  4591. ; pascal OSErr DirMapPathNameToDNodeNumber(DirParamBlockPtr paramBlock, Boolean async)
  4592. ;
  4593.     IF ¨ GENERATINGCFM THEN
  4594.         Macro
  4595.         _DirMapPathNameToDNodeNumber
  4596.             move.w              #$0122,-(sp)
  4597.             dc.w                $AA5E
  4598.         EndM
  4599.     ELSE
  4600.         IMPORT_CFM_FUNCTION DirMapPathNameToDNodeNumber
  4601.     ENDIF
  4602.  
  4603. ;
  4604. ; pascal OSErr DirMapDNodeNumberToPathName(DirParamBlockPtr paramBlock, Boolean async)
  4605. ;
  4606.     IF ¨ GENERATINGCFM THEN
  4607.         Macro
  4608.         _DirMapDNodeNumberToPathName
  4609.             move.w              #$0123,-(sp)
  4610.             dc.w                $AA5E
  4611.         EndM
  4612.     ELSE
  4613.         IMPORT_CFM_FUNCTION DirMapDNodeNumberToPathName
  4614.     ENDIF
  4615.  
  4616. ;
  4617. ; pascal OSErr DirGetLocalNetworkSpec(DirParamBlockPtr paramBlock, Boolean async)
  4618. ;
  4619.     IF ¨ GENERATINGCFM THEN
  4620.         Macro
  4621.         _DirGetLocalNetworkSpec
  4622.             move.w              #$0124,-(sp)
  4623.             dc.w                $AA5E
  4624.         EndM
  4625.     ELSE
  4626.         IMPORT_CFM_FUNCTION DirGetLocalNetworkSpec
  4627.     ENDIF
  4628.  
  4629. ;
  4630. ; pascal OSErr DirGetDNodeInfo(DirParamBlockPtr paramBlock, Boolean async)
  4631. ;
  4632.     IF ¨ GENERATINGCFM THEN
  4633.         Macro
  4634.         _DirGetDNodeInfo
  4635.             move.w              #$0125,-(sp)
  4636.             dc.w                $AA5E
  4637.         EndM
  4638.     ELSE
  4639.         IMPORT_CFM_FUNCTION DirGetDNodeInfo
  4640.     ENDIF
  4641.  
  4642. ;   Trap Dispatchers for Personal Catalog and CSAM Extensions 
  4643. ;
  4644. ; pascal OSErr DirCreatePersonalDirectory(DirParamBlockPtr paramBlock)
  4645. ;
  4646.     IF ¨ GENERATINGCFM THEN
  4647.         Macro
  4648.         _DirCreatePersonalDirectory
  4649.             moveq               #0,D0
  4650.             move.b              D0,-(sp)
  4651.             move.w              #$011F,-(sp)
  4652.             dc.w                $AA5E
  4653.         EndM
  4654.     ELSE
  4655.         IMPORT_CFM_FUNCTION DirCreatePersonalDirectory
  4656.     ENDIF
  4657.  
  4658. ;
  4659. ; pascal OSErr DirOpenPersonalDirectory(DirParamBlockPtr paramBlock)
  4660. ;
  4661.     IF ¨ GENERATINGCFM THEN
  4662.         Macro
  4663.         _DirOpenPersonalDirectory
  4664.             moveq               #0,D0
  4665.             move.b              D0,-(sp)
  4666.             move.w              #$011E,-(sp)
  4667.             dc.w                $AA5E
  4668.         EndM
  4669.     ELSE
  4670.         IMPORT_CFM_FUNCTION DirOpenPersonalDirectory
  4671.     ENDIF
  4672.  
  4673. ;
  4674. ; pascal OSErr DirClosePersonalDirectory(DirParamBlockPtr paramBlock)
  4675. ;
  4676.     IF ¨ GENERATINGCFM THEN
  4677.         Macro
  4678.         _DirClosePersonalDirectory
  4679.             moveq               #0,D0
  4680.             move.b              D0,-(sp)
  4681.             move.w              #$0131,-(sp)
  4682.             dc.w                $AA5E
  4683.         EndM
  4684.     ELSE
  4685.         IMPORT_CFM_FUNCTION DirClosePersonalDirectory
  4686.     ENDIF
  4687.  
  4688. ;
  4689. ; pascal OSErr DirMakePersonalDirectoryRLI(DirParamBlockPtr paramBlock)
  4690. ;
  4691.     IF ¨ GENERATINGCFM THEN
  4692.         Macro
  4693.         _DirMakePersonalDirectoryRLI
  4694.             moveq               #0,D0
  4695.             move.b              D0,-(sp)
  4696.             move.w              #$0132,-(sp)
  4697.             dc.w                $AA5E
  4698.         EndM
  4699.     ELSE
  4700.         IMPORT_CFM_FUNCTION DirMakePersonalDirectoryRLI
  4701.     ENDIF
  4702.  
  4703. ;
  4704. ; pascal OSErr DirAddDSAM(DirParamBlockPtr paramBlock)
  4705. ;
  4706.     IF ¨ GENERATINGCFM THEN
  4707.         Macro
  4708.         _DirAddDSAM
  4709.             moveq               #0,D0
  4710.             move.b              D0,-(sp)
  4711.             move.w              #$011D,-(sp)
  4712.             dc.w                $AA5E
  4713.         EndM
  4714.     ELSE
  4715.         IMPORT_CFM_FUNCTION DirAddDSAM
  4716.     ENDIF
  4717.  
  4718. ;
  4719. ; pascal OSErr DirInstantiateDSAM(DirParamBlockPtr paramBlock)
  4720. ;
  4721.     IF ¨ GENERATINGCFM THEN
  4722.         Macro
  4723.         _DirInstantiateDSAM
  4724.             moveq               #0,D0
  4725.             move.b              D0,-(sp)
  4726.             move.w              #$0127,-(sp)
  4727.             dc.w                $AA5E
  4728.         EndM
  4729.     ELSE
  4730.         IMPORT_CFM_FUNCTION DirInstantiateDSAM
  4731.     ENDIF
  4732.  
  4733. ;
  4734. ; pascal OSErr DirRemoveDSAM(DirParamBlockPtr paramBlock)
  4735. ;
  4736.     IF ¨ GENERATINGCFM THEN
  4737.         Macro
  4738.         _DirRemoveDSAM
  4739.             moveq               #0,D0
  4740.             move.b              D0,-(sp)
  4741.             move.w              #$0120,-(sp)
  4742.             dc.w                $AA5E
  4743.         EndM
  4744.     ELSE
  4745.         IMPORT_CFM_FUNCTION DirRemoveDSAM
  4746.     ENDIF
  4747.  
  4748. ;
  4749. ; pascal OSErr DirAddDSAMDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4750. ;
  4751.     IF ¨ GENERATINGCFM THEN
  4752.         Macro
  4753.         _DirAddDSAMDirectory
  4754.             move.w              #$0133,-(sp)
  4755.             dc.w                $AA5E
  4756.         EndM
  4757.     ELSE
  4758.         IMPORT_CFM_FUNCTION DirAddDSAMDirectory
  4759.     ENDIF
  4760.  
  4761. ;
  4762. ; pascal OSErr DirGetExtendedDirectoriesInfo(DirParamBlockPtr paramBlock, Boolean async)
  4763. ;
  4764.     IF ¨ GENERATINGCFM THEN
  4765.         Macro
  4766.         _DirGetExtendedDirectoriesInfo
  4767.             move.w              #$0136,-(sp)
  4768.             dc.w                $AA5E
  4769.         EndM
  4770.     ELSE
  4771.         IMPORT_CFM_FUNCTION DirGetExtendedDirectoriesInfo
  4772.     ENDIF
  4773.  
  4774. ;
  4775. ; pascal OSErr DirGetDirectoryIcon(DirParamBlockPtr paramBlock, Boolean async)
  4776. ;
  4777.     IF ¨ GENERATINGCFM THEN
  4778.         Macro
  4779.         _DirGetDirectoryIcon
  4780.             move.w              #$0121,-(sp)
  4781.             dc.w                $AA5E
  4782.         EndM
  4783.     ELSE
  4784.         IMPORT_CFM_FUNCTION DirGetDirectoryIcon
  4785.     ENDIF
  4786.  
  4787. ;
  4788. ; pascal OSErr DirAddADAPDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4789. ;
  4790.     IF ¨ GENERATINGCFM THEN
  4791.         Macro
  4792.         _DirAddADAPDirectory
  4793.             move.w              #$0137,-(sp)
  4794.             dc.w                $AA5E
  4795.         EndM
  4796.     ELSE
  4797.         IMPORT_CFM_FUNCTION DirAddADAPDirectory
  4798.     ENDIF
  4799.  
  4800. ;
  4801. ; pascal OSErr DirRemoveDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4802. ;
  4803.     IF ¨ GENERATINGCFM THEN
  4804.         Macro
  4805.         _DirRemoveDirectory
  4806.             move.w              #$0135,-(sp)
  4807.             dc.w                $AA5E
  4808.         EndM
  4809.     ELSE
  4810.         IMPORT_CFM_FUNCTION DirRemoveDirectory
  4811.     ENDIF
  4812.  
  4813. ;
  4814. ; pascal OSErr DirNetSearchADAPDirectoriesGet(DirParamBlockPtr paramBlock, Boolean async)
  4815. ;
  4816.     IF ¨ GENERATINGCFM THEN
  4817.         Macro
  4818.         _DirNetSearchADAPDirectoriesGet
  4819.             move.w              #$0108,-(sp)
  4820.             dc.w                $AA5E
  4821.         EndM
  4822.     ELSE
  4823.         IMPORT_CFM_FUNCTION DirNetSearchADAPDirectoriesGet
  4824.     ENDIF
  4825.  
  4826. ;
  4827. ; pascal OSErr DirNetSearchADAPDirectoriesParse(DirParamBlockPtr paramBlock, Boolean async)
  4828. ;
  4829.     IF ¨ GENERATINGCFM THEN
  4830.         Macro
  4831.         _DirNetSearchADAPDirectoriesParse
  4832.             move.w              #$0105,-(sp)
  4833.             dc.w                $AA5E
  4834.         EndM
  4835.     ELSE
  4836.         IMPORT_CFM_FUNCTION DirNetSearchADAPDirectoriesParse
  4837.     ENDIF
  4838.  
  4839. ;
  4840. ; pascal OSErr DirFindADAPDirectoryByNetSearch(DirParamBlockPtr paramBlock, Boolean async)
  4841. ;
  4842.     IF ¨ GENERATINGCFM THEN
  4843.         Macro
  4844.         _DirFindADAPDirectoryByNetSearch
  4845.             move.w              #$0107,-(sp)
  4846.             dc.w                $AA5E
  4847.         EndM
  4848.     ELSE
  4849.         IMPORT_CFM_FUNCTION DirFindADAPDirectoryByNetSearch
  4850.     ENDIF
  4851.  
  4852. ;
  4853. ; pascal OSErr DirGetOCESetupRefNum(DirParamBlockPtr paramBlock, Boolean async)
  4854. ;
  4855.     IF ¨ GENERATINGCFM THEN
  4856.         Macro
  4857.         _DirGetOCESetupRefNum
  4858.             move.w              #$0128,-(sp)
  4859.             dc.w                $AA5E
  4860.         EndM
  4861.     ELSE
  4862.         IMPORT_CFM_FUNCTION DirGetOCESetupRefNum
  4863.     ENDIF
  4864.  
  4865. ;
  4866. ; pascal OSErr DirAbort(DirParamBlockPtr paramBlock)
  4867. ;
  4868.     IF ¨ GENERATINGCFM THEN
  4869.         Macro
  4870.         _DirAbort
  4871.             moveq               #0,D0
  4872.             move.b              D0,-(sp)
  4873.             move.w              #$011B,-(sp)
  4874.             dc.w                $AA5E
  4875.         EndM
  4876.     ELSE
  4877.         IMPORT_CFM_FUNCTION DirAbort
  4878.     ENDIF
  4879.  
  4880. ;
  4881. ; pascal OSErr OCESetupAddDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4882. ;
  4883.     IF ¨ GENERATINGCFM THEN
  4884.         Macro
  4885.         _OCESetupAddDirectoryInfo
  4886.             move.w              #$0219,-(sp)
  4887.             dc.w                $AA5E
  4888.         EndM
  4889.     ELSE
  4890.         IMPORT_CFM_FUNCTION OCESetupAddDirectoryInfo
  4891.     ENDIF
  4892.  
  4893. ;
  4894. ; pascal OSErr OCESetupChangeDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4895. ;
  4896.     IF ¨ GENERATINGCFM THEN
  4897.         Macro
  4898.         _OCESetupChangeDirectoryInfo
  4899.             move.w              #$021B,-(sp)
  4900.             dc.w                $AA5E
  4901.         EndM
  4902.     ELSE
  4903.         IMPORT_CFM_FUNCTION OCESetupChangeDirectoryInfo
  4904.     ENDIF
  4905.  
  4906. ;
  4907. ; pascal OSErr OCESetupRemoveDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4908. ;
  4909.     IF ¨ GENERATINGCFM THEN
  4910.         Macro
  4911.         _OCESetupRemoveDirectoryInfo
  4912.             move.w              #$020D,-(sp)
  4913.             dc.w                $AA5E
  4914.         EndM
  4915.     ELSE
  4916.         IMPORT_CFM_FUNCTION OCESetupRemoveDirectoryInfo
  4917.     ENDIF
  4918.  
  4919. ;
  4920. ; pascal OSErr OCESetupGetDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4921. ;
  4922.     IF ¨ GENERATINGCFM THEN
  4923.         Macro
  4924.         _OCESetupGetDirectoryInfo
  4925.             move.w              #$020E,-(sp)
  4926.             dc.w                $AA5E
  4927.         EndM
  4928.     ELSE
  4929.         IMPORT_CFM_FUNCTION OCESetupGetDirectoryInfo
  4930.     ENDIF
  4931.  
  4932.     ENDIF
  4933.     ENDIF ; __OCEAUTHDIR__ 
  4934.  
  4935.